Apt-get 边看边记

基于 Beret, An apt-get primer, http://www.linux.com/article.pl?sid=04/12/03/177243 但不是完全翻译,并且有所补充,算是一篇比较入门的有关 Debian 的 APT 的文章吧啊。

apt-get 在Debian项目中的地位是无可替代的,如果说有一个程序可以代表Debian ,那毫无疑问,是 apt-get,apt-get和deb包提供了 RPM 所无法提供的强大功能。

除了apt的便捷以外,apt-get的一大好处是极大地减小了所谓依赖关系恶梦的发生 几率(dependency hell),即使是陷入了dependency hell,apt-get也提供了很好的 援助手段,帮你逃出魔窟。

通常 apt-get 都和网上的压缩包一起出没,从互联网上下载或是安装。全世界有超 过200个 debian 官方镜像,还有繁多的非官方软件包提供网站。你所使用的基于D ebian的发布版不同,你所使用的软件仓库可能需要手工选择或是可以自动设置。你 能从Debian官方网站得到完整的镜像列表。而很多非官方网站提供各种特殊用途的 非官方软件包,当然,使用非官方软件包会有更多风险了。

软件包都是为某一个基本的Debian发布版所准备的(从unstable到stable),并且划 分到不同类别中(如 main contrib nonfree),这个是依据 debian 自由软件纲领而 划分的(也就是常说的dfsg),因为美国限制加密软件出口,还有一个non-us类别。

apt-get 获取软件包所依赖的配置文件 /etc/apt/sources.list 中的设置编写格式 是

                                                                      
 deb [server-type] [address] [directories] [areas]
文中例子:
deb http://mirror.peer1.net/debian main contrib non-free
我在学校的时候的例子
deb http://debian.ustc.edu.cn/debian/ testing main contrib non-free

如果用deb-src 而不是 deb 的话,那么就是指的源代码包。通常都会使用http和f tp方式获取文件,不过也可以使用本地文件,更罕见的还有rsh和SSH,但都是可以 的。使用 netselect-apt 可以用来判断哪个镜像更快。修改了镜像信息后,应该使 用apt-get update 命令,更新软件包的信息

你可以从Debian 网站上看软件包的相关信息,而另一方面可以使用 dpkg -l 看哪 些软件包已经被安装了。很大的程序,比如gnome,通常有个空的软件包,只是通过 依赖关系来安装其他所有的相应的软件,而这些软件也可以被逐一安装。

使用 apt-get install [package-name] 就可以安装软件包了,这里不需要版本号,apt-get 会自动选择最新的。如果最新 的已经被安装了,那么就不会安装了。如果希望安装一个较老的版本,可以选择版 本,比如

apt-get install gimp=2.2
你也可以选择特定的发布版
apt-get install -t unstable gimp
对于安装源代码,使用source代替install就可以了,如果需要编译,使用 -b 选项 ,软件包会被下载到当前目录的。(aptitude 注:只有 root 可以 install,但是 谁都可以source 的。)

执行之前,apt-get 会列出有多少软件包要被安装、升级,如果要被安装的软件不 只是你所指出的软件包,那么它会问你是否继续。可以使用 -s 来看看运行的结果 (注: 不知道这个是怎么仿真的,没试过)

apt-get 安装过程中,会显示安装的状况,有时 apt-get 会根据软件包的需求调用 debconf 来让用户输入一些配置选项。这个配置一般都是一些选择,通常选择缺省 情况都可以,也可以使用 --yes 来声明,全部使用缺省选项,无需提问。(注:如果使用cron来每天自动更新系统,这个选项还是挺有用的,虽然总觉得有点害怕吧。)

apt-get 的 upgrade 不会安装新的软件包,只会升级原有的软件包的版本,要升级 整个系统,可能要安装新的软件包,这可以通过 dist-upgrade 完成,比如升级 s table到testing,建议要升级 stable 到 unstable,先升级到 testing,以减小风 险。

使用 apt-get clean 可以释放被 apt-get 所占用的缓存空间也可以使用 autocl ean 命令,这样仅仅删去已经不可能被再次下载的文件。

也可以使用 remove 命令删除软件包。(注:如果要连配置文件也一起删 除,需要使用 --purge 参数)

有时也会出问题,可以用下面一些办法解决:

  • -f 修复依赖关系
  • -m 忽略有问题的包 (这个不像是解决问题的态度哦)
  • -ignore-hold 忽略有问题的 hold
  • -s 报告软件包状态

当然,如果你的技巧和耐心不够的话,还是小心使用系统吧,正常的使用通常不会 造成很多需要解决的问题 :)

多年以来,apt-get 有了很多前端,除了商业版本外,其他的都可以通过 apt-get 来安装。文本界面下,aptitude 还不错,浏览软件包比较方便。对于图形界面 synaptic 是个不错的选择,比较原汁原味的 apt,而 kpachage 就不那么像 apt 了。

大部分的桌面用 linux 版本都有摒弃命令行的倾向,不过,apt-get 是一个 命令 行是最好的 的特例。它的存在正是那些基于 debian 的系统大行其到的原因。而且 apt-get 甚至已经被移植到 rpm 系统之中了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值