分类: LINUX
2010-12-01 09:38:20
Debian,以及基于 Debian 的系统,如 Ubuntu 等,所使用的包格式为 deb。以下为操作 deb 包的常用 Dpkg 指令表,供初学的朋友参考。
命令 | 作用 |
dpkg -i package.deb | 安装包 |
dpkg -r package | 删除包 |
dpkg -P package | 删除包(包括配置文件) |
dpkg -L package | 列出与该包关联的文件 |
dpkg -l package | 显示该包的版本 |
dpkg --unpack package.deb | 解开 deb 包的内容 |
dpkg -S keyword | 搜索所属的包内容 |
dpkg -l | 列出当前已安装的包 |
dpkg -c package.deb | 列出 deb 包的内容 |
dpkg --configure package | 配置包 |
dpkg是Debian Package 的简写。为Debian专桉开发的套件管理系统,方便软体的安装、更新及移除。所有源自Debian的distribution都使用dpkg,例如Ubuntu、Knoppix等。
以下是一些 Dpkg 的普通用法:
1、dpkg -i
安装一个 Debian 包裹文件,如你手动下载的文件。
2、dpkg -c
列出
3、dpkg -I
从
4、dpkg -r
移除一个已安装的包裹。
5、dpkg -P
完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。
6、dpkg -L
列出
7、dpkg -s
显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 .deb 文件中提取的包裹信息。
8、dpkg-reconfigure
重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。
dpkg -i
安装一个 Debian 包裹文件,如你手动下载的文件。
dpkg -c
列出
dpkg -I
从
dpkg -r
移除一个已安装的包裹。
dpkg -P
完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。
dpkg -L
列出
dpkg -s
显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 .deb 文件中提取的包裹信息。
dpkg-reconfigure
重
新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。你能够重新配制 debconf
它本身,如你想改变它的前端或提问的优先权。例如,重新配制 debconf,使用一个 dialog 前端,简单运行:
dpkg-reconfigure --frontend=dialog debconf (如果你安装时选错了,这里可以改回来哟:)
echo “
设置
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
在包裹数据库中查找
dpkg其它用法编辑本段回目录dpkg-source -x
如果你手工下载了一个程序的源码包,其中包含了几个类似 .orig.tar.gz ,.dsc ,
以及 .diff.gz 之类的文件,
那么你就可以对 .dsc 文件使用这个命令来 unpack 源码包。
dpkg-buildpackage
从 Debian 源码树建立一个 deb 包。你必须在 source tree 的主目录才能生效。例如:
dpkg-buildpackage -rfakeroot -uc -b
这里 '-rfakeroot' 指定命令使用 fakeroot 程序来模仿 root 权限 [来实现所有者(ownership)目的],
'-uc' 表示 "Don't cryptographically sign the changelog",'-b' 代表只建立二进制包。
debuild
一个快速打包脚本类似 dpkg-buildpackage,能自动的识别是否使用 fakeroot,
同时为你运行 lintian 和 gpg。
修正倚赖关系
dpkg --configure --pending
如果 dpkg 在 apt-get install upgrade dist-uptradeing 的时候出错退出,
尝试使用此命令来配置已经 unpack 的包。
然后再用 apt-get install,upgrade,或者 dist-upgrade -f,
然后再用 apt-get install,upgrade,或者 dist-upgrade。
chinaunix网友2010-12-01 15:21:32
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com