linux软件包使用技巧总结

查找特定文件属于哪个软件包:
dpkg -S stdio.h
rpm -q --whatprovides /usr/lib/libavcodec.so.52
rpm -qf file
rpm -qf `which your_cmd`, rpm -qf `locate file_name`

查看指定rpm包安装的详细信息
rpm -qi rpm_name
列出已经安装的rpm包中包含了哪些文件及他们的安装路径
rpm -ql installed_rpm_name:。如rpm -ql iptraf
 
 
有几种方式来指定查询软件包时所显示的信息。 以下选项可通过读取rpm包头部的办法显示rpm包的信息,这样的选项被称作“信息选择选项”:
-i 显示软件包信息,如描述、发行号、大小、编译日期、安装日期、硬件平台、以及其它一些各类信息。
-l 列出软件包中包含的文件。(列出已经安装的rpm包中包含了哪些文件及他们的安装路径)
-s 显示软件包中所有文件的状态。
-d 列出被标注为文档的文件 (如,man 手册、 info 信息、README,等等) 。
-c 列出被标注为配置文件的文件。这些文件是需要在安装完毕后加以定制的,如 (sendmail.cf, passwd, inittab, 等) 。


显示软件包详细信息
apt-cache show
rpm -ql

显示软件包具体内容:


显示系统已有软件包
dpkg -l



显示软件包变化历史 :
apt-listchanges      
在每个软件包被安装以后,都会在文档目录( /usr/share/doc/packagename ) 生成一个 changelog.Debian.gz 的文件


“按需”安装软件包

# auto-apt run ./configure 自动安装缺少的软件包
 auto-apt updateauto-apt updatedb和 auto-apt update-local来完成更新。

下载源码包编译
apt-get source packagename 仅下载
apt-get -b source packagename 下载编译

通常会下载三个文件:一个.orig.tar.gz、一个.dsc和一个.diff.gz。对于Debian专用的软件包,不会下载最后一个文件,第一个文件的文 件名中没有“orig”项。  dpkg-source通过.dsc文件中的信息,将源码包解包到 packagename-version目录,下载下来的源码包中有一个 debian/目录,里面是创建.deb包所需的文件。想要下载的源码包自动编译成软件包,只需在命令行中加上-b

如果你不打算在下载后就立刻创建.deb文件,你可以在之后用下面的命令创建:

     $ dpkg-buildpackage -rfakeroot -uc -b

上述命令应当在下载后为软件包创建的目录中执行。要安装用这种方式构建好的 软件包,只能直接使用软件包管理器,例如:

     # dpkg -i file.deb

 编译源码包所需的软件包

通常,编译源码包时要用到某些头文件和共享库,所有的源码包的控制文件中都 有一个域“Build-Depends:”,域中指出了编译该源码包需要哪些附加包。

APT提供了一个简单的方法下载这些附加包,你只需运行apt-get build-dep package,其中“package”就是你打算编译的源码包 名称。见下例:

     # apt-get build-dep gmc
     Reading Package Lists... Done
     Building Dependency Tree... Done
     The following NEW packages will be installed:
       comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
       libgpmg1-dev 
     0 packages upgraded, 7 newly installed, 0 to remove and 1  not upgraded.
     Need to get 1069kB of archives. After unpacking 3514kB will be used.
     Do you want to continue? [Y/n]

这些将要被安装的包是用于正确编译gmc的。注意这个命令不 能用来搜索某个软件的源码包,你得另外运行apt-get source下载源码包。

如果你想做的是检查要编译一个软件包需要哪些其它的软件包,apt-cache show可以显示它(从那考获取软件包信息, 第 5 章,在众多信息之中,Build-Depends一行会列出那些需要的软件包。

     # apt-cache showsrc package

发现该软件包既不能重装又不能删除,试试下 面两个命令:

     # apt-get -f install
     # dpkg --configure -a

当RPM安装好后,因为某些原因损坏了,或者在删除某些软件时候因为依赖性的关系,

被删除了一部分,在使用的时候或者安装其他软件的时候,

提示依赖性不能被解决。那么就需要重新安装,

但是安装的时候提示你已经安装过了。

这个时候就需要重新安装,或者强制安装。

命令如下: # rpm -ivh --force 名称.rpm

# rpm -ivh --force(这里必须是两个-,不是一个) --nodeps   名称.rpm

rpm -e --force --nodeps XXXXXXXX 删除 以 snow-1.1.rpm 为例
#rpm -ivh snow-1.1.rpm { i:安装、v:详细信息、h:用#表示进度 }
#rpm -e snow { 删除 }
#rpm -ivh --force snow-1.1.rpm { 强制重装 }
#rpm -e --nodeps snow { 去除内部相关性检查删除 snow, 不推荐使用}
#rpm -Uvh snow {升级 }
#rpm -q snow { 查询 }
#rpm -ql snow { 查询 snow所拥有的文件 }
#rpm -qlc snow { 查询snow的文档文件 }
#rpm -qld snow { 查询snow的配置文件 }
#rpm -qp snow-1.1.rpm { 查询文件,但不查询数据库 }
#rpm -qa { 查询所有以安装的软件包 }
#rpm -qf /usr/X11R6/bin/snow { 查询包的所有者 }
#rpm -qR snow-1.1.rpm { 查询 snow包期望系统具有的情况 }
#rpm --checksig snow-1.1.rpm { 验证完整性签名 }
#rpm -V snow { 验证安装后是否被修改过 }

apt-file是一个软件包查找工具,可以查到软件包所含的文件和安装的位置。

  • apt-file update

    更新软件包的文件库,第一次使用或apt-get update后都需运行一次。

  • apt-file search file_name

    查找该文件存在于哪些软件包中。

  • apt-file list package_name

    显示该软件包的文件。


更新缓冲
yum update
yum makecache
搜索
yum search 
安装
yum install
下载软件包
yumdownloader **
下载软件包源码包
yumdownloader --source 


重建rpm包
rpmbuild --rebuild

显示配置参数
rpmbuld  --showrc

重建deb包

 

dpkg的用

dpkg是一个Debian的一个命令行工具,它可以用来安装、删除、构建和管理Debian的软件包。

下面是它的一些命令解释:
1)安装软件
命令行:dpkg -i <.deb file name>
示例:dpkg -i avg71flm_r28-1_i386.deb
2)安装一个目录下面所有的软件包
命令行:dpkg -R
示例:dpkg -R /usr/local/src
3)释放软件包,但是不进行配置
命令行:dpkg –unpack package_file 如果和-R一起使用,参数可以是一个目录
示例:dpkg –unpack avg71flm_r28-1_i386.deb
4)重新配置和释放软件包
命令行:dpkg –configure package_file
如果和-a一起使用,将配置所有没有配置的软件包
示例:dpkg –configure avg71flm_r28-1_i386.deb
5)删除软件包(保留其配置信息)
命令行:dpkg -r
示例:dpkg -r avg71flm
6)替代软件包的信息
命令行:dpkg –update-avail <Packages-file>
7)合并软件包信息
dpkg –merge-avail <Packages-file>
8)从软件包里面读取软件的信息
命令行:dpkg -A package_file
9)删除一个包(包括配置信息)
命令行:dpkg -P
10)丢失所有的Uninstall的软件包信息
命令行:dpkg –forget-old-unavail
11)删除软件包的Avaliable信息
命令行:dpkg –clear-avail
12)查找只有部分安装的软件包信息
命令行:dpkg -C
13)比较同一个包的不同版本之间的差别
命令行:dpkg –compare-versions ver1 op ver2
14)显示帮助信息
命令行:dpkg –help
15)显示dpkg的Licence
命令行:dpkg –licence (or) dpkg –license
16)显示dpkg的版本号
命令行:dpkg –version
17)建立一个deb文件
命令行:dpkg -b direc×y [filename]
18)显示一个Deb文件的目录
命令行:dpkg -c filename
19)显示一个Deb的说明
命令行:dpkg -I filename [control-file]
20)搜索Deb包
命令行:dpkg -l package-name-pattern
示例:dpkg -I vim
21)显示所有已经安装的Deb包,同时显示版本号以及简短说明
命令行:dpkg -l
22)报告指定包的状态信息
命令行:dpkg -s package-name
示例:dpkg -s ssh
23)显示一个包安装到系统里面的文件目录信息
命令行:dpkg -L package-Name
示例:dpkg -L apache2
24)搜索指定包里面的文件(模糊查询)
命令行:dpkg -S filename-search-pattern
25)显示包的具体信息
命令行:dpkg -p package-name
示例:dpkg -p cacti

最后:
1、很多人抱怨用了Ubuntu或者Debian以后,不知道自己的软件给安装到什么地方了。其实可以用上面的dpkg -L命令来方便的查找。看来基础还是非常重要的,图形界面并不能够包办一切。
2、有的时候,用“新力得”下载完成以后,没有配置,系统会提示用“dpkg –configure -all”来配置,具体为什么也可以从上面看到。
3、现在Edgy里面可以看到Deb的信息。不过是在没有安装的时候(当然也可以重新打开那个包),可以看到Deb的文件路径。
4、如果想暂时删除程序以后再安装,第5项还是比较实用的,毕竟在Linux下面配置一个软件也并非容易。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值