apt-get 的使用

回复 收藏
本帖最后由 andy 于 2009-11-23 15:14 编辑

1.修改source list文件
配置文件是/etc/apt/sources.list
在文件中添加如下的两行
deb ftp://ftp.iitm.ac.in/debian/ stable main
deb-src ftp://ftp.iitm.ac.in/debian/ stable main
这两个位于印度的服务器,下载的速度很快。
2.apt-get update用于获取最新的软件信息。

3.使用apt-get install package进行指定软件的安装
例如:apt-get install vim
4.apt-get remove package进行软件的移除
5.apt-get source package获取软件的源代码
6.apt-get clean清除下载的deb
来自: www.linuxsir.org

一基本配置

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
下载所编译包的依赖程序

sudo apt-get -f install 修复安装"-f = --fix-missing"

如果在运行apt-get install package时,你的系统报告如下信息:


Reading Package Lists... Done

Building Dependency Tree... Done

W: Couldn't stat source package list 'http://people.debian.org unstable/ Packages' (/var/state/apt/lists/people.debian.org_%7ekov_debian_unstable_Packages) - stat (2 No such file or directory)

W: You may want to run apt-get update to correct these missing files

E: Couldn't find package penguineyes

上次你修改/etc/apt/sources.list后,忘了运行apt-get update更新。

如果出现这样的信息:

E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)

E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

如果你没有root权限,运行除source外的其它apt-get命 令,如会出现上面的错误信息。这是因为你是普通用户。

当你同时运行两个apt-get进程,或者当你试图运行apt-get时已有一个的dpkg进程处于激活状态,系统也 会报告与上面相似的错误信息。唯一能与其它命令同时运行的只有source 命令。

如果在安装过程中出现中断,然后你发现该软件包既不能重装又不能删除,试试下 面两个命令:

# apt-get -f install

# dpkg --configure -a

再试着安装那个软件包,如果不行再次运行上述命令后再试。这两个命令对于那些 使用unstable的玩家非常有用。

如果你在运行apt-get update时看到“E: Dynamic MMap ran out of room”, 那么在/etc/apt/apt.conf加入如下内容:

APT::Cache-Limit 10000000;



另附:

常用的APT命令参数(转载) 作者: feng_li_82
关键字:
apt-cache search package 搜索包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package - - reinstall 重新安装包
sudo apt-get -f install 修复安装"-f = --fix-missing"
sudo apt-get remove package 删除包
sudo apt-get remove package - - purge 删除包,包括删除配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends package 了解使用依赖
apt-cache rdepends package 是查看该包被哪些包依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖
2009-11-23 15:12 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: