dpkg命令简介

首先要学习debian的中层包管理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软件包所包含的文件列表,以及安装位置


安装软件包

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
deb to rpm工具 用法 [root@yun alien]# ls Alien alien.lsm alien.lsm.in alien.pl alien.spec alien.spec.in debian gendiff.txt GPL INSTALL Makefile.PL README TODO [root@yun alien]# ./alien.pl You must specify a file to convert. Usage: alien [options] file [...] file [...] Package file or files to convert. -d, --to-deb Generate a Debian deb package (default). Enables these options: --patch= Specify patch file to use instead of automatically looking for patch in /var/lib/alien. --nopatch Do not use patches. --anypatch Use even old version os patches. -s, --single Like --generate, but do not create .orig directory. --fixperms Munge/fix permissions and owners. --test Test generated packages with lintian. -r, --to-rpm Generate a Red Hat rpm package. --to-slp Generate a Stampede slp package. -l, --to-lsb Generate a LSB package. -t, --to-tgz Generate a Slackware tgz package. Enables these options: --description= Specify package description. --version= Specify package version. -p, --to-pkg Generate a Solaris pkg package. -i, --install Install generated package. -g, --generate Generate build tree, but do not build package. -c, --scripts Include scripts in package. -v, --verbose Display each command alien runs. --veryverbose Be verbose, and also display output of run commands. -k, --keep-version Do not change version of generated package. --bump=number Increment package version by this number. -h, --help Display this help message. -V, --version Display alien's version number. [root@yun alien]# ./Makefile.PL Writing Makefile for Alien [root@yun alien]# ls Alien alien.lsm.in alien.spec debian GPL Makefile mysqlcc_0.9.4-0ubuntu1_i386.deb TODO alien.lsm alien.pl alien.spec.in gendiff.txt INSTALL Makefile.PL README [root@yun alien]# ./alien.pl -r mysqlcc_0.9.4-0ubuntu1_i386.deb Warning: Skipping conversion of scripts in package mysqlcc: postinst postrm Warning: Use the --scripts parameter to include the scripts. mysqlcc-0.9.4-1.i386.rpm generated [root@yun alien]# ls Alien alien.lsm.in alien.spec debian GPL Makefile mysqlcc_0.9.4-0ubuntu1_i386.deb README alien.lsm alien.pl alien.spec.in gendiff.txt INSTALL Makefile.PL mysqlcc-0.9.4-1.i386.rpm TODO [root@yun alien]# make cp Alien/Package/Deb.pm blib/lib/Alien/Package/Deb.pm cp Alien/Package/Tgz.pm blib/lib/Alien/Package/Tgz.pm cp Alien/Package.pm blib/lib/Alien/Package.pm cp Alien/Package/Rpm.pm blib/lib/Alien/Package/Rpm.pm cp Alien/Package/Pkg.pm blib/lib/Alien/Package/Pkg.pm cp Alien/Package/Lsb.pm blib/lib/Alien/Package/Lsb.pm cp Alien/Package/Slp.pm blib/lib/Alien/Package/Slp.pm perl -pe '$_="" if /use lib/; $_="our \$Version=\"8.79\";\n" if /VERSION_AUTOREPLACE/' alien.pl > alien cp alien blib/script/alien /usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/alien Manifying blib/man1/alien.1 Manifying blib/man3/Alien::Package::Tgz.3pm Manifying blib/man3/Alien::Package::Deb.3pm Manifying blib/man3/Alien::Package::Rpm.3pm Manifying blib/man3/Alien::Package.3pm Manifying blib/man3/Alien::Package::Pkg.3pm Manifying blib/man3/Alien::Package::Lsb.3pm Manifying blib/man3/Alien::Package::Slp.3pm perl -i -pe "s/\@version\@/8.79/g" alien.lsm perl -i -pe "s/\@version\@/8.79/g" alien.spec [root@yun alien]# make install perl -i -pe "s/\@version\@/8.79/g" alien.lsm perl -i -pe "s/\@version\@/8.79/g" alien.spec Installing /usr/local/lib/perl5/site_perl/5.10.0/Alien/Package.pm Installing /usr/local/lib/perl5/site_perl/5.10.0/Alien/Package/Deb.pm Installing /usr/local/lib/perl5/site_perl/5.10.0/Alien/Package/Lsb.pm Installing /usr/local/lib/perl5/site_perl/5.10.0/Alien/Package/Pkg.pm Installing /usr/local/lib/perl5/site_perl/5.10.0/Alien/Package/Rpm.pm Installing /usr/local/lib/perl5/site_perl/5.10.0/Alien/Package/Slp.pm Installing /usr/local/lib/perl5/site_perl/5.10.0/Alien/Package/Tgz.pm Installing /usr/local/share/man/man1/alien.1 Installing /usr/local/share/man/man3/Alien::Package.3pm Installing /usr/local/share/man/man3/Alien::Package::Deb.3pm Installing /usr/local/share/man/man3/Alien::Package::Lsb.3pm Installing /usr/local/share/man/man3/Alien::Package::Pkg.3pm Installing /usr/local/share/man/man3/Alien::Package::Rpm.3pm Installing /usr/local/share/man/man3/Alien::Package::Slp.3pm Installing /usr/local/share/man/man3/Alien::Package::Tgz.3pm Installing /usr/local/bin/alien Writing /usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi/auto/Alien/.packlist install -d /usr/local/share/alien/patches \ /var/lib/alien Appending installation info to /usr/lib/perl5/5.10.0/i386-linux-thread-multi/perllocal.pod [root@yun alien]#
<think>好的,用户想了解dpkg命令的用法。首先,我需要回忆一下dpkg的基本功能和常用参数。根据之前学过的知识,dpkgDebian系统上用来管理.deb包的工具,负责安装、卸载、查询软件包等操作。 用户提供的引用资料里提到,dpkg可以安装、卸载、打包和解压deb包,相关参数有-i、-r、-P、-L、-l等。需要把这些参数整理清楚,用中文解释清楚每个参数的作用。比如,-i是安装,-r是删除,而-P是删除同时清理配置。 还要注意用户提到的引用内容,比如引用[3]详细列出了各个参数,可能需要引用到对应的脚注。比如在说明安装软件的时候,加上[^3],这样符合用户的要求。同时,用户要求行内公式用$...$,独立公式用$$...$$,不过这个问题可能不涉及数学公式,但需要保持LaTeX语法正确,虽然这里可能用不上数学表达式。 接下来,用户可能想知道具体的使用示例,比如安装、卸载、查询已安装的包、查看包内文件等。需要给出具体的命令例子,比如dpkg -i package.deb,并且每个例子后面要加上对应的引用来源,比如。 另外,用户要求生成相关问题。可能需要考虑dpkg和apt的区别,如何解决依赖问题,如何修复损坏的包,或者如何查看包的详细信息等。这些问题可以作为相关问题放在最后。 最后,需要确保回答结构清晰,分点说明,参数用列表展示,代码块用正确的格式,比如使用反引号包裹命令示例。同时检查是否有遗漏的参数或者使用场景,确保覆盖用户可能需要的常见操作。</think>### dpkg 命令使用说明 `dpkg` 是 Debian 系统及其衍生版(如 Ubuntu)中用于管理 `.deb` 软件包的核心工具,支持安装、卸载、查询等操作。 #### 一、常用参数及功能 1. **安装软件包** ```bash dpkg -i <package_name.deb> ``` - 示例:`dpkg -i nginx_1.18.0.deb` - 注意:安装时若缺少依赖需手动解决[^1]。 2. **卸载软件包** - 仅删除软件(保留配置): ```bash dpkg -r <package_name> ``` - 删除软件及配置: ```bash dpkg -P <package_name> ``` 3. **查询操作** - 列出所有已安装的软件包: ```bash dpkg -l ``` - 查看某个软件包状态: ```bash dpkg -l <package_name> ``` - 查看软件包关联的文件: ```bash dpkg -L <package_name> ``` - 查看 `.deb` 包内文件列表: ```bash dpkg -c <package_name.deb> ``` 4. **配置与解包** - 解压 `.deb` 包但不配置: ```bash dpkg --unpack <package_name.deb> ``` - 完成解压后配置: ```bash dpkg --configure <package_name> ``` #### 二、典型应用场景 1. **离线安装软件**:直接通过 `.deb` 文件安装,适合无网络环境。 2. **修复依赖问题**:结合 `apt-get -f install` 自动修复依赖[^1]。 3. **清理残留配置**:使用 `-P` 参数彻底删除软件及配置。 #### 三、注意事项 - `dpkg` **不自动处理依赖**,需配合 `apt` 或 `apt-get` 使用以解决依赖问题[^2][^3]。 - 查询时支持模糊匹配,如 `dpkg -l "nginx*"` 列出所有以 `nginx` 开头的包。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值