Debian新手apt-get/dpkg简明入门
Debian是最早的Linux发行版之一。他能引起公众注意就因为他让安装和卸载软件很简单。在其他发行版还陷在依赖性的泥潭里时,Debian用户因为有更好的包管理系统而免受这些困扰。
任何基于Debian的发行都使用这个包管理系统。Deb包能够把一个应用的文档包在一起,大体就如同Windows上的安装文档。这里要介绍的就是如何使用安装包处理软件来达到我们的目的。
用apt-get的第一步就是引入必需的软件库,Debian的软件库也就是任何Debian软件包的集合,他们存在互连网上的一些公共站点上。把
他们的地址加入,apt-get就能搜索到我们想要的软件。/etc/apt/sources.list是存放这些地址列表的配置文档,其格式如下:
deb [web或ftp地址] [发行版名字][main/contrib/non-free]
比如Ubuntu是个基于Debian的发行,他的Sources.list能够是这样的:
deb http://in.archive.ubuntu.com/ubuntu breezy main restrcted
您能够自己加上自己的地址。apt-get.org 上面有一些不错的地址列表。
设好地址之后,就要把本机上的软件库跟网上的库同步(只是软件描述信息,不包含软件本身)。这样,本机上就有了一个可用的软件的清单,命令如下:
# apt-get update
运行成功之后,您就能够搜到在您的发行版中有哪些软件了,命令是apt-cache,运行这个命令是在本机是检索,而不连到网上。如:
# apt-cache search baseutils
这个命令能够列出baseutils这个软件包的情况,有还是没有,更有版本等。
看到库里有这个软件包后,就能够安装他:
# apt-get install baseutils
这时我们就能够看到apt-get的威力了。假如baseutils依赖于某个另外的软件,或一个运行库xyz.0.01.so,apt-get
会自动下载这个包(或含有这个库的软件包)。这叫做自动依赖性处理。通常,假如您只用Debian软件库内的软件,是不会发生很难找到包或包版本不对的情况
的,除非用的是正在研发的Testing或Unstable版本。
卸载软件:
# apt-get remove baseutils
假如想看一下库里有多少软件:
# apt-cache stats
Total package names : 22502 (900k)
Normal packages: 17632
Pure virtual packages: 281
Single virtual packages: 1048
Mixed virtual packages: 172
Missing: 3369
...
把本机任何软件升级到最新版:
# apt-get upgrade
最后是最强力的--把整个发行版都升到新版本:
# apt-get dist-upgrade
升级时注意那些影响系统起动的东西,比如升级了内核,升级了grub或lilo等,这之后您应当重新运行grub或是lilo,让他们指向正确的位置,否则升级之后会工作不正常的。
用apt-get安装软件时,他会从网上(在sources.list里指的那个站点)下载所用的软件包,这个包将存在本机上,目录是:/var/cache/apt/archives/。时间长了,这里会变得很巨大,占用大量的硬盘空间。要想清理这个目录,能够运行:
# apt-get clean
更有一个自动清理功能,他只清除那些没用的或是不完整的软件包:
# apt-get autoclean
这样在重装某软件时就依然能使用已下载好的,而不是再到网上去下载。
dpkg - 底层一些的包管理工具
用上apt(高级包管理工具)之后,一般是无需处理单个的deb文档的。假如需要,就要用dpkg命令。比如想自己装gedit:
# dpkg -i gedit-2.12.1.deb
卸载:
# dpkg -r gedit
这里只写名字即可。还能够加上--purge(-P)标志:
# dpkg -P gedit
这会连同gedit的配置文档一起删除,只用-r的话是不删除配置文档的。
假如不想安装一个deb包,但想看一下他里面有什么文档:
# dpkg -c gedit-2.12.1.deb
假如想多看点信息:
# dpkg -I gedit-2.12.1.deb
也能够用通配符来列出机器上的软件:
# dpkg -l gcc*
这会列出任何gcc开头的软件包:
Desired=Unknown/Install/Remove/Purge/Hold
Status=Not/Installed/Config-files/Unpacked/Failed-config/.
/ Err?=(none)/Hold/Reinst-required/X=both-problems
/ Name Version Description
+++-===============-==============-========================
ii gcc 4.0.1-3 The GNU C compiler
ii gcc-3.3-base 3.3.6-8ubuntu1 The GNU Compiler Colletio
un gcc-3.5 none (no description available)
其中,第1个 i 表示希望安装,第2个 i 表示已安装,第3个字段是问题(假如有)(这3个字的含义能够看上面那3行,desired, status, err),后面是名字,版本和描述。un就表示,Unknown, not-installed。
假如想看某包是否已安装:
# dpkg -s gedit
假如想看某软件都有哪些文档,都装到了什么地方:
# dpkg -L gedit
任何基于Debian的发行都使用这个包管理系统。Deb包能够把一个应用的文档包在一起,大体就如同Windows上的安装文档。这里要介绍的就是如何使用安装包处理软件来达到我们的目的。
用apt-get的第一步就是引入必需的软件库,Debian的软件库也就是任何Debian软件包的集合,他们存在互连网上的一些公共站点上。把
他们的地址加入,apt-get就能搜索到我们想要的软件。/etc/apt/sources.list是存放这些地址列表的配置文档,其格式如下:
deb [web或ftp地址] [发行版名字][main/contrib/non-free]
比如Ubuntu是个基于Debian的发行,他的Sources.list能够是这样的:
deb http://in.archive.ubuntu.com/ubuntu breezy main restrcted
您能够自己加上自己的地址。apt-get.org 上面有一些不错的地址列表。
设好地址之后,就要把本机上的软件库跟网上的库同步(只是软件描述信息,不包含软件本身)。这样,本机上就有了一个可用的软件的清单,命令如下:
# apt-get update
运行成功之后,您就能够搜到在您的发行版中有哪些软件了,命令是apt-cache,运行这个命令是在本机是检索,而不连到网上。如:
# apt-cache search baseutils
这个命令能够列出baseutils这个软件包的情况,有还是没有,更有版本等。
看到库里有这个软件包后,就能够安装他:
# apt-get install baseutils
这时我们就能够看到apt-get的威力了。假如baseutils依赖于某个另外的软件,或一个运行库xyz.0.01.so,apt-get
会自动下载这个包(或含有这个库的软件包)。这叫做自动依赖性处理。通常,假如您只用Debian软件库内的软件,是不会发生很难找到包或包版本不对的情况
的,除非用的是正在研发的Testing或Unstable版本。
卸载软件:
# apt-get remove baseutils
假如想看一下库里有多少软件:
# apt-cache stats
Total package names : 22502 (900k)
Normal packages: 17632
Pure virtual packages: 281
Single virtual packages: 1048
Mixed virtual packages: 172
Missing: 3369
...
把本机任何软件升级到最新版:
# apt-get upgrade
最后是最强力的--把整个发行版都升到新版本:
# apt-get dist-upgrade
升级时注意那些影响系统起动的东西,比如升级了内核,升级了grub或lilo等,这之后您应当重新运行grub或是lilo,让他们指向正确的位置,否则升级之后会工作不正常的。
用apt-get安装软件时,他会从网上(在sources.list里指的那个站点)下载所用的软件包,这个包将存在本机上,目录是:/var/cache/apt/archives/。时间长了,这里会变得很巨大,占用大量的硬盘空间。要想清理这个目录,能够运行:
# apt-get clean
更有一个自动清理功能,他只清除那些没用的或是不完整的软件包:
# apt-get autoclean
这样在重装某软件时就依然能使用已下载好的,而不是再到网上去下载。
dpkg - 底层一些的包管理工具
用上apt(高级包管理工具)之后,一般是无需处理单个的deb文档的。假如需要,就要用dpkg命令。比如想自己装gedit:
# dpkg -i gedit-2.12.1.deb
卸载:
# dpkg -r gedit
这里只写名字即可。还能够加上--purge(-P)标志:
# dpkg -P gedit
这会连同gedit的配置文档一起删除,只用-r的话是不删除配置文档的。
假如不想安装一个deb包,但想看一下他里面有什么文档:
# dpkg -c gedit-2.12.1.deb
假如想多看点信息:
# dpkg -I gedit-2.12.1.deb
也能够用通配符来列出机器上的软件:
# dpkg -l gcc*
这会列出任何gcc开头的软件包:
Desired=Unknown/Install/Remove/Purge/Hold
Status=Not/Installed/Config-files/Unpacked/Failed-config/.
/ Err?=(none)/Hold/Reinst-required/X=both-problems
/ Name Version Description
+++-===============-==============-========================
ii gcc 4.0.1-3 The GNU C compiler
ii gcc-3.3-base 3.3.6-8ubuntu1 The GNU Compiler Colletio
un gcc-3.5 none (no description available)
其中,第1个 i 表示希望安装,第2个 i 表示已安装,第3个字段是问题(假如有)(这3个字的含义能够看上面那3行,desired, status, err),后面是名字,版本和描述。un就表示,Unknown, not-installed。
假如想看某包是否已安装:
# dpkg -s gedit
假如想看某软件都有哪些文档,都装到了什么地方:
# dpkg -L gedit
# dpkg -L package-name|more
假如只想看其中的某些文档,就加上Grep:
# dpkg -L gedit grep png
当然更有aptitude和Aptitude,前者是终端上运行的带菜单的工具,后者是X窗口上运行的图像化的程式。
更有,列出某包的详情:apt-cache show gedit
一些强制的命令:dpkg --force-help