apt how to 学习笔记(转)
主要想了解一下如何查某文件属于哪个软件包,可能未安装。。。
转自:http://blog.csdn.net/yeqihong/archive/2007/01/18/1487100.aspx
一基本配置
1. /etc/apt/sources.list文件的基本格式:
deb http://site.http.org/debian distribution section1 section2 section3
deb-src http://site.http.org/debian distribution section1 section2 section3
deb 二进制程序包 deb-src 原代码程序包
例如:
deb http://http.us.debian.org/debian stable main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable non-US
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://http.us.debian.org/debian stable main contrib non-free
apt 会忽略以"#"开头的行
注意: 修改/etc/apt/sources.list后,应及时更新数据库列表
2.制作本地apt
# mkdir /root/debs
将自己收集的.deb包考入/root/debs目录
# dpkg-scanpackages debs| gzip > debs/Packages.gz
在/etc/apt/sources.listdeb 加入:
file:/root debs/
3.寻找速度最快的下载镜相:netselect, netselect-apt
安装netselect软件包
# apt-get install netselect
测试我使用的镜像
# netselect security.debian.org ftp.us.debian.org ftp.jp.debian.org non-us.debian.org people.debian.org gluck.debian.org
520 ftp.jp.debian.org
#
看到了我所使用的镜像中 ftp.jp.debian.org速度最快 得分为520 (得分越低越好)
你可以在这里查找debian的镜像列表 http://www.debian.org/mirror/mirrors_full
你也可以用netselect-apt下载列表
# ls sources.list
ls: sources.list: File or directory not found
# netselect-apt stable
(...)
# ls -l sources.list
sources.list
#
前提是你已经安装并运行了'wget'包
4.把CD-ROM加入到你的/etc/apt/sources.list文件
如果使用apt自动从CD-ROM上安装软件或升级系统,可以把它加入/etc/apt/sources.list文件
# apt-cdrom add
注: CD-ROM必须在/etc/fstab文件中已正确配置
二、管理包
1.apt系统使用一个数据库列表来记录系统已经安装了哪些软件,哪些没有安装,哪些软件可以通过apt系统自动安装 apt-get通过分析这个数据库来决定如何安装软件,
应该经常运行#apt-get update来更新此数据库
2.安装软件包
# apt-get install packagename
apt-get的参数
-h This help text.
-d Download only - do NOT install or unpack archives
-f Attempt to continue if the integrity check fails
-s No-act. Perform ordering simulation
-y Assume Yes to all queries and do not prompt
-u Show a list of upgraded packages as well
软件包会被下载到/var/cache/apt/archives 稍后进行安装
如果一个软件包坏了,或者你只是想重新安装一个软件的最新版本 ,可以使用--reinstall参数,如
# apt-get --reinstall install gdm
在安装软件时,可以用apt-get install package/distribution或apt-get install package=version来指定软件的安装版本,如
# apt-get install nautilus/unstable
3.移除软件包
apt-get remove package
# apt-get remove gnome-panel
这样就会移除gnome-panel以及对gnome-panel有依赖性的软件包,无法使用apt系统仅仅移除此软件,而保留对它有依赖性的软件包。
apt-get remove package并不能移除这些软件的配置文件
# apt-get --purge remove gnome-panel
就可以一块把他的配置文件移除
4.升级软件包
apt-get upgrade
5.升级到一个新的版本
# apt-get -u dist-upgrade
6.移除无用的软件包
当安装软件时,软件包会被先下载到/var/cache/apt/archives/目录下,然后安装。这样这个目录所占空间会越来越大,幸运的是apt提供了相应的管理工具
apt-get clean删除/var/cache/apt/archives/ 和 /var/cache/apt/archives/partial/目录下所有包(锁定的除外)。
apt-get autoclean仅删除不再能被下载的包
7.
8.如何维持一个混合的系统
鉴于testing版unstable版本比稳定,又比stable版本要新 ,很多人使用testing,可是有些人想运行某个软件的最新版,却又不愿把这个系统升级为unstable,即想使用一个混合的系统,那么可以这样做:
在 /etc/apt/apt.conf 加入:
APT::Default-Release "testing";
当要安装unstable软件时 加 -t 参数:
# apt-get -t unstable install packagename
注:不要忘记在/etc/apt/sources.list中加入相应的源
9.从一个特定的debian版本升级软
# apt-get install `apt-show-versions -u -b | grep unstable`件
10.如何在软件升级时避免特定软件不会被升级
如果你使用的bebian版本在2.2以上,仅仅需要修改/etc/apt/preferences 文件
格式非常简单:
Package: Pin: Priority:
例如我要保持gaim的0.58版本 只需加上:
Package: gaim
Pin: version 0.58*
统配符 * 指锁定以0.58开头的所有版本 这就是说即使存在0.58-1 或类似 也不会被安装
Priority(优先级)是可选项 默认 989
<0 此软件永不会被安装
0~100 软件不被安装,不是有效的版本
>100 此软件会被安装 即 如果有更新版本,软件会被升级
100~1000 软件不会被降级安装,例如:我安装的gaim 0.59 , 锁定gaim 0.58 ,优先级为999
那么0.58就不会被安装 ,如果要降级安装 则优先级许大于 1000
获取软件信息
1.搜寻软件名
# apt-cache search gaim
软件信息
# apt-cache show gaim
如果已经安装,并且又有了新版本,那么都会显示,安装版本在后
获取更多信息
# apt-cache showpkg gaim
查询软件的依赖性
# apt-cache depends gaim
2.用dpkg查询软件名
根据某一个文件查询软件名
# dpkg -S stdio.h
3.询问式安装
# auto-apt run command
4.查询文件的归属
# apt-file search filename
就象dpkg -S 但可以查询,但可以查未安装软件包
也可以查询一个包所含文件
# apt-file list packagename
它会用到数据库所以要及时更新
# apt-file update
程序源文件
1.下载程序源码
# apt-get source packagename
这样就会下载三个文件 a .orig.tar.gz, a .dsc 和 a .diff.gz
下载后自动打包
# apt-get -b source packagename
2.编译软件
# apt-get build-dep gmc
下载所编译包的依赖程序
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yeqihong/archive/2007/01/18/1487100.aspx