首页 > 技术文章 > Linux学习笔记 之 Linux软件的安装与卸载

zhaofenqiang 2016-11-22 14:55 原文

Linux软件的安装与卸载

参考:http://www.cnblogs.com/jyginger/archive/2010/07/25/1784599.html#anchor0

http://www.cnblogs.com/xwdreamer/p/3623454.html

 

http://www.cnblogs.com/forward/archive/2012/01/10/2318483.html(精)

 

通常Linux应用软件的安装包有三种:

 

  • tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。
  • rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。
  • dpkg包,如software-1.2.3-1.deb。它是Debain Linux提供的一种包封装格式。

(如:搜狗输入法:sogoupinyin_2.1.0.0082_amd64.deb)

 

大多数Linux应用软件包的命名也有一定的规律,它遵循:

名称-版本-修正版-类型

例如:

  • software-1.2.3-1.tar.gz 意味着:
    • 软件名称:software
    • 版本号:1.2.3
    • 修正版本:1
    • 类型:tar.gz,说明是一个tar包。
  • sfotware-1.2.3-1.i386.rpm
    • 软件名称:software
    • 版本号:1.2.3
    • 修正版本:1
    • 可用平台:i386,适用于Intel 80x86平台。
    • 类型:rpm,说明是一个rpm包。
    注:由于rpm格式的通常是已编译的程序,所以需指明平台。
  • 对于software-1.2.3-1.deb就请大家自己练习一下。

通常,用tar打包的,都是源程序;而用rpm、dpkg打包的则常是可执行程序

 

1.“dpkg ”是“Debian Packager ”的简写

安装.deb文件,可以直接双击安装,跟windows的.exe一样,如搜狗输入法:sogoupinyin_2.1.0.0082_amd64.deb,可以直接在软件中心下载的软件和下载的大多数成熟的商业软件都属于这个,越来越方便了...?

安装 dpkg –i deb软件包名 如: dpkg –i software-1.2.3-1.deb
卸载 dpkg –e 软件名 如: dpkg –e software

Dpkg 使用文本文件来作为数据库.通称在 /var/lib/dpkg 目录下. 通称在 status 文件中存储软件状态,和控制信息. 在 info/ 目录下备份控制文件, 并在其下的 .list 文件中记录安装文件清单

dpkg --info "软件包名" --列出软件包解包后的包名称.
dpkg -l  列出当前系统中所有的包.可以和参数less一起使用在分屏查看. (类似于rpm -qa)
dpkg -l |grep -i "软件包名" --查看系统中与"软件包名"相关联的包.
dpkg -s 查询已安装的包的详细信息.
dpkg -L 查询系统中已安装的软件包所安装的位置. (类似于rpm -ql)
dpkg -S 查询系统中某个文件属于哪个软件包. (类似于rpm -qf)
dpkg -I 查询deb包的详细信息,在一个软件包下载到本地之后看看用不用安装(看一下呗).
dpkg -i 手动安装软件包(这个命令并不能解决软件包之前的依赖性问题),如果在安装某一个软件包的时候遇到了软件依赖的问题,可以用apt-get -f install在解决信赖性这个问题.
dpkg -r 卸载软件包.不是完全的卸载,它的配置文件还存在.
dpkg -P 全部卸载(但是还是不能解决软件包的依赖性的问题)
dpkg -reconfigure 重新配置

 

2.RPM软件包管理器
英文原义:RPM Package Manager(原Red Hat Package Manager,现在是一个递归缩写)
注解:一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。与Dpkg类似。
安装: rpm –ivh rpm软件包名 ,如:  rpm –ivh software-1.2.3-1.i386.rpm
卸载: rpm –e 软件名  如: rpm –e software  

详细请参考 http://blog.sina.com.cn/s/blog_535aa0930100bo3c.html

 

3.tar打包的应用软件

  • 安装

    整个安装过程可以分为以下几步:

    1. 取得应用软件:通过下载、购买光盘的方法获得;
    2. 解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。如果是最常见的gz格式,则可以执行:“tar –xvzf 软件包名”,就可以一步完成解压与解包工作。如果不是,则先用解压软件,再执行“tar –xvf 解压后的tar包”进行解包;tar解压时,可以设置解压目录的,默认为当前目录
    3. 阅读附带的INSTALL文件、README文件;
    4. 执行“./configure”命令为编译做好准备;
    5. 执行“make”命令进行软件编译;
    6. 执行“make install”完成安装;
    7. 执行“make clean”删除安装时产生的临时文件。

所以我们举这个例子中,fcitx如果定制安装到 /opt/fcitx目录中,完整的安装方法应该是:
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ./configure --prefix=/opt/fcitx
[root@localhost fcitx]# make
[root@localhost fcitx]# make install

卸载:

有些软件包的源代码在编译安装后可以用make install命令来进行卸载,如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净, 那你应该在编译前进行配置,指定软件将要安装到目标路径:./configure --prefix=目录名,这样可以使用“rm -rf 软件目录名”命令来进行干净彻底的卸载。与其它安装方式相比,需要用户自己编译安装是最难的,它适合于使用Linux已有一定经验的人,一般不推荐初学者 使用。  

 

 

4.apt-get

最重要最常用的, apt-get命令只能用于在repositories中的包,即Ubuntu 官方源中就有这个程序,不能用于处理自己下载的deb包,也可以用在下方第五条所加的PPA源

平时apt-get install安装软件时,下载的deb文件都会存放在/var/cache/apt/archives/下

apt-cache search # ------(package 搜索包)
apt-cache show #------(package 获取包的相关信息,如说明、大小、版本等)
apt-get install # ------(package 安装包)
apt-get install # -----(package --reinstall 重新安装包)
apt-get -f install # -----(强制安装, "-f = --fix-missing"当是修复安装吧...)
apt-get remove #-----(package 删除包)
apt-get remove --purge # ------(package 删除包,包括删除配置文件等)
apt-get autoremove --purge # ----(package 删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))
apt-get update #------更新源
apt-get upgrade #------更新已安装的包
apt-get dist-upgrade # ---------升级系统
apt-get dselect-upgrade #------使用 dselect 升级
apt-cache depends #-------(package 了解使用依赖)
apt-cache rdepends # ------(package 了解某个具体的依赖,当是查看该包被哪些包依赖吧...)
apt-get build-dep # ------(package 安装相关的编译环境)
apt-get source #------(package 下载该包的源代码)
apt-get clean && apt-get autoclean # --------清理下载文件的存档 && 只清理过时的包
apt-get check #-------检查是否有损坏的依赖
dpkg -S filename -----查找filename属于哪个软件包
apt-file search filename -----查找filename属于哪个软件包
apt-file list packagename -----列出软件包的内容
apt-file update --更新apt-file的数据库 
Tips:建议您经常使用“apt-get update”命令来更新您的软件信息数据库

APT 的几个图形前端(其中一些在使用前得先安装):

dselect
console-apt
aptitude
gnome-apt
这里 dselect 无疑是最强大的,也是最古老,最难驾驭。

 

 5.PPA

Using a Personal Package Archive (PPA), you can distribute software and updates directly to Ubuntu users. Create your source package, upload it and Launchpad will build binaries and then host them in your own apt repository.

That means Ubuntu users can install your packages in just the same way they install standard Ubuntu packages and they'll automatically receive updates as and when you make them.

Every individual and team in Launchpad can have one or more PPAs, each with its own URL.

Packages you publish in your PPA will remain there until you remove them, they're superseded by another package that you upload or the version of Ubuntu against which they're built becomes obsolete.

安装方法:到 launchpad 上找到项目的主页,它的 overview 里一般都会有加源的详细说明。
找到 Adding this PPA to your system 的部分,记下该源的地址,比如:ppa:gwibber-daily/ppa
然后打开终端,输入:
sudo add-apt-repository ppa:user/ppa-name(把 ppa:user/ppa-name换成你要找的源的地址)
最后,
sudo apt-get update
例如:http://blog.csdn.net/li_hai/article/details/8189290
也可以打开【软件中心】->【软件源】->【其他软件】,选择添加,在弹出的窗口中APT行里输入 ppa:user/ppa-name 格式的内容。
删除命令格式则为:sudo add-apt-repository -r ppa:user/ppa-name, 然后进入 /etc/apt/sources.list.d 目录,将相应 ppa 源的保存文件删除。
最后同样更新一下。
 

 

推荐阅读