ubuntu 软件安装及卸载

一、Ubuntu中软件安装方法

1、APT方式

(1)普通安装:apt-get install softname1 softname2 …;

(2)修复安装:apt-get -f install softname1 softname2... ;(-f Atemp to correct broken dependencies)

(3)重新安装:apt-get --reinstall install softname1 softname2...;

2、Dpkg方式

(1)普通安装:dpkg -i package_name.deb

3、源码安装(.tar、tar.gz、tar.bz2、tar.Z)

首先解压缩源码压缩包然后通过tar命令来完成

a.解xx.tar.gz:tar zxf xx.tar.gz 
b.解xx.tar.Z:tar zxf xx.tar.Z 
c.解xx.tgz:tar zxf xx.tgz 
d.解xx.bz2:bunzip2 xx.bz2 
e.解xx.tar:tar xf xx.tar

然后进入到解压出的目录中,建议先读一下README之类的说明文件,因为此时不同源代码包或者预编译包可能存在差异,然后建议使用ls -F --color或者ls -F命令(实际上我的只需要 l 命令即可)查看一下可执行文件,可执行文件会以*号的尾部标志。

一般依次执行./configure

                      make

                     sudo make install

即可完成安装。

二、Ubuntu中软件包的卸载方法

1、APT方式

(1)移除式卸载:apt-get remove softname1 softname2 …;(移除软件包,当包尾部有+时,意为安装)

(2)清除式卸载 :apt-get --purge remove softname1 softname2...;(同时清除配置)

        清除式卸载:apt-get purge sofname1 softname2...;(同上,也清除配置文件)

2、Dpkg方式

(1)移除式卸载:dpkg -r pkg1 pkg2 ...;

(2)清除式卸载:dpkg -P pkg1 pkg2...;

三、其他应用总结

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的数据库

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 重新配置


apt-get install
下载软件包,以及所有依赖的包,同时进行包的安装或升级。如果某个包被设置了 hold (停止标志,就会被搁在一边(即不会被升级)。更多 hold 细节请看下面。
apt-get remove [--purge]
移除 以及任何依赖这个包的其它包。
--purge 指明这个包应该被完全清除 (purged) ,更多信息请看 dpkg -P。

apt-get update
升级来自 Debian 镜像的包列表,如果你想安装当天的任何软件,至少每天运行一次,而且每次修改了
/etc/apt/sources.list 後,必须执行。

apt-get upgrade [-u]
升 级所有已经安装的包为最新可用版本。不会安装新的或移除老的包。如果一个包改变了依赖关系而需要安装一个新的包,那么它将不会被升级,而是标志为 hold。apt-get update 不会升级被标志为 hold 的包 (这个也就是 hold 的意思)。请看下文如何手动设置包为hold。我建议同时使用 '-u' 选项,因为这样你就能看到哪些包将会被升级。

apt-get dist-upgrade [-u]
和 apt-get upgrade 类似,除了 dist-upgrade 会安装和移除包来满足依赖关系。因此具有一定的危险性。

apt-cache search
在软件包名称和描述中,搜索包含xxx的软件包。

apt-cache show
显示某个软件包的完整的描述。

apt-cache showpkg
显示软件包更多细节,以及和其它包的关系。

dselect
console-apt
aptitude
gnome-apt
APT 的几个图形前端(其中一些在使用前得先安装)。这里 dselect 无疑是最强大的,也是最古老,最难驾驭。

普通 Dpkg 用法
dpkg -i
安装一个 Debian 包文件,如你手动下载的文件。

dpkg -c
列出 的内容。

dpkg -I
从 中提取包信息。

dpkg -r
移除一个已安装的包。

dpkg -P
完全清除一个已安装的包。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。

dpkg -L
列出 安装的所有文件清单。同时请看 dpkg -c 来检查一个 .deb 文件的内容。

dpkg -s
显示已安装包的信息。同时请看 apt-cache 显示 Debian 存档中的包信息,以及 dpkg -I 来显示从一个 .deb 文件中提取的包信息。

dpkg-reconfigure
重 新配制一个已经安装的包,如果它使用的是 debconf (debconf 为包安装提供了一个统一的配制界面)。你能够重新配制debconf 它本身,如你想改变它的前端或提问的优先权。例如,重新配制 debconf,使用一个 dialog 前端,简单运行:

dpkg-reconfigure --frontend=dialog debconf (如果你安装时选错了,这里可以改回来哟:)

echo " hold" | dpkg --set-selections
设置 的状态为 hlod (命令行方式)

dpkg --get-selections ""
取的 的当前状态 (命令行方式)

支持通配符,如:
Debian:~# dpkg --get-selections *wine*
libwine hold
libwine-alsa hold
libwine-arts hold
libwine-dev hold
libwine-nas hold
libwine-print hold
libwine-twain hold
wine hold
wine+ hold
wine-doc hold
wine-utils hold

例如:
大家现在用的都是 gaim-0.58 + QQ-plugin,为了防止 gaim 被升级,我们可以采用如下方法:

方法一:
Debian:~# echo "gaim hold" | dpkg --set-selections
然後用下面命令检查一下:
Debian:~# dpkg --get-selections "gaim"
gaim hold
现在的状态标志是 hold,就不能被升级了。

如果想恢复怎么办呢?
Debian:~# echo "gaim install" | dpkg --set-selections
Debian:~# dpkg --get-selections "gaim"
gaim install
这时状态标志又被重置为 install,可以继续升级了。

同志们会问,哪个这些状态标志都写在哪个文件中呢?
在 /var/lib/dpkg/status 里,你也可以通过修改这个文件实现 hold。

有时你会发现有的软件状态标志是 purge,不要奇怪。
如:事先已经安装了 amsn,然後把它卸了。
apt-get remove --purge amsn
那么状态标志就从 install 变成 purge。

方法二:
在/etc/apt 下手动建一个 preferences 文件
内容:
Package: gaim
Pin: version 0.58*
保存

dpkg -S
在包数据库中查找 ,并告诉你哪个包包含了这个文件。(注:查找的是事先已经安装的包)

--------------------------------------------
Debian的软件包管理工具命令不完全列表
--------------------------------------------
Debian系统中所有的包信息都在/var/lib/dpkg下.其中/var/lib/dpkg/info目录中保存了各个软件包的信息及管理文件.每个文件的作用如下:
以 ".conffiles"     结尾的文件记录软件包的配置列表.
以 ".list"          结尾的文件记录了软件包的文件列表,用户可在文件当中找到软件包文件的具体安装位置.
以 ".md5sums"       结尾的文件记录了md5信息,用来进行包的验证的.
以 ".config"        结尾的文件是软件包的安装配置角本.
以 ".postinst"      角本是完成Debian包解开之后的配置工作,通常用来执行所安装软件包相关的命令和服务的重新启动.
以 ".preinst"       角本在Debain解包之前运行,主要作用是是停止作用于即将升级的软件包服务直到软件包安装或和升级完成.
以 ".prerm"         脚本负责停止与软件包关联的daemon服务,在删除软件包关联文件之前执行.
以 ".postrm"        脚本负责修改软件包链接或文件关联,或删除由它创建的文件.

/var/lib/dpkg/available是软件包的描述信息.
包括当前系统中所有使用的Debian安装源中所有的软件包,还包括当前系统中已经安装和未安装的软件包.
          
1.dpkg包管理工具

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

 


2. apt高级包管理工具
   (1)GTK图形的"synaptic",这是APT的前端工具.
   (2)"aptitude",这也是APT的前端工具.
   用APT管理工具进行包的管理,可以有以下几种方法做源:
   (1)拿安装盘做源,方法如下:
        apt-cdrom ident        扫描光盘的信息
        apt-cdrom add          添加光盘源
   (2)这也是最常用的方法就是把源添加到/etc/apt/source.list中,之后更新列apt-get update


APT管理工具常用命令
apt-cache 加上不同的子命令和参数的使用可以实现查找,显示软件,包信息及包信赖关系等功能.
apt-cache stats 显示当前系统所有使用的Debain数据源的统计信息.
apt-cache search +"包名",可以查找相关的软件包.
apt-cache show   +"包名",可以显示指定软件包的详细信息.
apt-cache depends +"包名",可以查找软件包的依赖关系.
apt-get upgrade   更新系统中所有的包到最新版
apt-get install   安装软件包
apt-get --reindtall install 重新安装软件包
apt-get remove 卸载软件包
apt-get --purge remove 完全卸载软件包
apt-get clean 清除无用的软件包
在用命令apt-get install之前,是先将软件包下载到/var/cache/apt/archives中,之后再进行安装的.所以我们可以用apt-get clean清除/var/cache/apt/archives目录中的软件包.


源码包安装
   apt-cache showsrc 查找看源码包的文件信息(在下载之前)
   apt-get source 下载源码包.
   apt-get build-dep +"包名" 构建源码包的编译环境.

 

清除处于rc状态的软件包

dpkg -l |grep ^rc|awk '{print $2}' |tr ["/n"] [" "] | sudo xargs dpkg -P -

 

 

 

 

1、通过deb包安装的情况: 
安装.deb包: 
代码:sudo dpkg -i package_file.deb
反安装.deb包:
代码:sudo dpkg -r package_name

2、通过apt-get安装的情况:
安装
代码:sudo apt-get install package_name
反安装
代码:sudo apt-get remove package_name

3、sudo dpkg -p package_name卸载软件包及其配置文件,但无法解决依赖关系!
   sudo aptitude purge pkgname卸载软件包及其配置文件与依赖关系包!
     

清除所有已删除包的残馀配置文件 
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P 
如果报如下错误,证明你的系统中没有残留配置文件了,无须担心。


--------------------------------------------------------------------------------

dpkg: --purge needs at least one package name argument

Type dpkg --help for help about installing and deinstalling packages

  • ;
    Use `dselect' or `aptitude' for user-friendly package management;
    Type dpkg -Dhelp for a list of dpkg debug flag values;
    Type dpkg --force-help for a list of forcing options;
    Type dpkg-deb --help for help about manipulating *.deb files;
    Type dpkg --license for copyright license and lack of warranty (GNU GPL)
  • .

    Options marked
  • produce a lot of output - pipe it through `less' or `more' !


    4、dpkg安裝的可以用apt卸載,反之亦可     


    5、aptitude 与 apt-get 一样, 是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些。举例来说,aptitude 在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。以下是笔者总结的一些常用 aptitude 命令,仅供参考。

    命令 作用 
    aptitude update 更新可用的包列表 
    aptitude upgrade 升级可用的包 
    aptitude dist-upgrade 将系统升级到新的发行版 
    aptitude install pkgname 安装包 
    aptitude remove pkgname 删除包 
    aptitude purge pkgname 删除包及其配置文件 
    aptitude search string 搜索包 
    aptitude show pkgname 显示包的详细信息 
    aptitude clean 删除下载的包文件 
    aptitude autoclean 仅删除过期的包文件 


    当然,你也可以在文本界面模式中使用 aptitude。

    6、常用apt命令

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

简介
dpkg是Debian的中级软件包管理器,类似RPM.

dpkg是Debian软件包管理系统的中流砥柱,负责安全卸载软件包,配置,以及维护已安装的软件包.也是Debian系统中众多软件包管理工具的后端.有关dpkg的更多介绍参阅:http://www.dpkg.org

系统中所有packages的信息都在/var/lib/dpkg/目录下,其中子目录”/var/lib/dpkg/info”用于保存各个软件包的配置文件列表.

.conffiles 记录了软件包的配置文件列表
.list 保存软件包中的文件列表,用户可以从.list的信息中找到软件包中文件的具体安装位置.

.md5sums 记录了软件包的md5信息,这个信息是用来进行包验证的.

.prerm 脚本在Debian报解包之前运行,主要作用是停止作用于即将升级的软件包的服务,直到软件包安装或升级完成.

.postinst脚本是完成Debian包解开之后的配置工作,通常用于执行所安装软件包相关命令和服务重新启动.

/var/lib/dpkg/available文件的内容是软件包的描述信息,该软件包括当前系统所使用的Debian安装源中的所有软件包,其中包括当前系统中已安装的和未安装的软件包.

dpkg
查询当前系统所有已安装的deb包
dpkg –l 命令用于查询当前系统所有以安装的deb包的信息.,通过less和grep可以执行更复杂的查询工作.

例如查找跟vim有关的软件包,dpkg –l |grep –ivim

(如发现iU 表示软件包未安装成功,ii表示安装成功)



查看已安装软件包的详细情况
dpkg –s 命令查看软件包的详细情况,包括版本,依赖之类的



查询系统中所安装软件包所安装的文件
dpkg –L 命令用于查询系统中所安装软件包的安装的文件安装到系统的位置和安装了那些.


小提示: 如何可以看软件包装到哪个地方?
用apt-get install *


如何可以看软件包装到哪个地方?
dpkg -L package-name|more



查询系统中某个文件属于那个软件包
dpkg –S 命令用于了解当前的软件属于那个软件包



查询未安装的信息
查询未安装软件包详细信息
dpkg –I 命令用于查看未安装软件包的详细信息,以便了解该软件包是否需要安装.



查询deb包文件中所包含的文件
dpkg –c 显示未安装deb软件包所包含的文件列表,以及安装位置



安装软件包
安装deb软件包
dpkg –i 手工安装deb包到系统中,不过有时会存在Dpends关系,建议使用apt-get 来安装.
如果通过dpkg –i安装软件后由于Dpends关系没有安装成功,可通过apt-get –f install解决 


解决dpkg –i 安装deb包出现Dpends问题
apt-get –f install 解决Dpends问题.
例如:dpkg –i lftp_3.1.3-1_i386.deb

Selecting previously deselected package lftp.
(Reading database … 20654 files and directories currently installed.)
unpacking lftp (from lftp_3.1.3-1_i386.deb)…
dpkg:dependency problems prevent configuration of lftp:
lftp depends on libexpat1 (<=1.95.8);however
dpkg : error processing lftp (--install)
dependency problems –leaving unconfigured 
Errors were encountered while processing:
lftp
//lftp软件包安装失败
dpkg –l |grep lftp
iU lftp   3.1.3-1   Sophisticated
command-line FTP/HTTP client p
//”dpkg -l” 查询信息表示lftp软件包未安装成功
(iU表示未安装成功,ii表示安装成功)

使用apt-get –f install解决



卸载deb软件包
dpkg –r用于卸载指定的软件包,该命令只卸载软件包安装到系统中的文件,而不去删除软件包的配置文件,因此不是完全意义上的卸载.但是软件包保存在系统中,可以提供给以后在安装软件包时使用.
例如:dpkg –r prozilla 移除后再用dpkg –l |grep prozilla 查看

会看到rc proc 1.3.6-3woody3 multi-thraded download accelerator

表示软件包已经被卸载,但配置文件仍在“rc”带表配置文件仍在.


卸载软件包并清除配置文件
dpkg –P 用于卸载软件包同时也删除配置文件,dpkg –P 不能解决Dpends问题,建议卸载时使用apt-get操作



重新配置软件包
对于Debian系统中的众多软件包(尤其是系统和服务器软件包)来说,在第一次安装该软件包时候会显示对话框窗口,提示用户输入必要的配置信息.当用户需要再次对软件包配置的时候,可以使用dpkg-reconfigure来对指定的软件包进行配置.
比如dpkg-reconfigure locales



alien包转换工具


如果我们有很喜欢的RPM包,而又没有deb版本.怎么办~?可以同过alien来转换或者直接安装,这个小家伙可是个很方便的东西!

基本命令如下:
首先通过apt-get install alien来安装.
然后
alien -i name-of-the-pakage.rpm /*用来直接安装rpm包
alien -d , --to-deb /*Make debian packages,This is the default
例:alien –d package.rpm
alien –r , --to-rpm /*Make rpm packages

例:alien –r package.deb
alien –p , --to-pkg /*Make Solaris pkg packages
alien –-to-slp /*Make slp packages
alien –t , --to-tgz /*Make tgz packages
alien –T 检测

alien –-patch=patch 设置patch

 sudo apt-get remove softwarename


posted @ 2011-12-18 12:56  陈鹏C  阅读(684)  评论(0编辑  收藏  举报