apt-get 命令原理
来源:互联网 发布:大数据修炼系统 顶点 编辑:程序博客网 时间:2024/05/21 11:36
原文链接:http://hackerxu.com/2014/12/03/apt_get.html
apt-get工作顺序
1 查询源列表
apt命令会访问/etc/apt/sources.list
源列表.(这个源列表可以添加好多源,每次都选中开头的有效源)
deb http://mirror.neu.edu.cn/ubuntu/(网址) trusty main restricted (版本号)
我的这个是东大的源.
2 查询Packages.gz
Main 的包的相关信息均在 dists/lucid/main/binary-i386/下。不是把包放在这里就行了,还需要生成Packages.gz的包文件,因为apt-get 每次都会读取这个文件,从而获取的包的信息。
从Packages.gz中获取到所有包的信息,然后apt-get就可以通过它找到所有的包并且自动下载安装了。
来看看Packages.gz都有什么吧(下面是python包的信息):
Package: pythonPriority: importantSection: pythonInstalled-Size: 640Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>Original-Maintainer: Matthias Klose <doko@debian.org>Architecture: allSource: python-defaultsVersion: 2.6.5-0ubuntu1Replaces: python-base, python-xmlbase, python2.3 (<= 2.3.2-6)Provides: python-ctypes, python-email, python-plistlib, python-wsgiref, python-xmlbaseDepends: python2.6 (>= 2.6.5), python-minimal (= 2.6.5-0ubuntu1)Suggests: python-doc (>= 2.6.5-0ubuntu1), python-tk (>= 2.6.5-0ubuntu1), python-profiler (>= 2.6.5-0ubuntu1)Conflicts: libboost-dbg (<< 1.34.1-15ubuntu3), libboost-python-dev (<< 1.34.1-15ubuntu3), libboost-python1.35-dev (<< 1.35.0-8ubuntu5), libboost1.35-dbg (<< 1.35.0-8ubuntu5), pitivi (<< 0.11.3-1ubuntu1), python-aubio (<< 0.3.2-2ubuntu3), python-base, python-bz2, python-central (<< 0.5.5), python-csv, python-freevo (<< 1.8.1-3ubuntu3), python-xmlbase, python2.1 (<= 2.1.2), python2.3 (<< 2.3.5-14), qmtest (<< 2.4-5ubuntu1), ufw (<< 0.27~r416)Filename: pool/main/p/python-defaults/python_2.6.5-0ubuntu1_all.debSize: 147766MD5sum: 457b6f467e45287b8430833ec7d2f9ecSHA1: 3d67dd0ebf003ede05dbae034616c1f519ea5962SHA256: 5aa5086459e04815980329b66f430321cf490d7d37c9550e30d43125dd2dc5fcDescription: An interactive high-level object-oriented language (default version) Python, the high-level, interactive object oriented language, includes an extensive class library with lots of goodies for network programming, system administration, sounds and graphics. . This package is a dependency package, which depends on Debian's default Python version (currently v2.6).Bugs: https://bugs.launchpad.net/ubuntu/+filebugOrigin: UbuntuSupported: 5yTask: minimal
包含的信息有:
包名,优先级,类型,维护者,架构,源文件(source),版本号,依赖包,冲突性信息,包大小,文件的下载路径,MD5sum,SHA1,包描述,Xul-Appid---应用程序id,Bugs信息,Origin,Supported
从以上可以看到包的下载地址为:
(http://mirror.neu.edu.cn/ubuntu/)pool/main/p/python-defaults/python_2.6.5-0ubuntu1_all.deb
3 下载包或者依赖
它会首先检查依赖,如果不存在则下载依赖包,这个依赖包或许还有依赖(递归下载),在完成了所有依赖包则可以进行下载,安装完成,中间任意一环没有完成则失败退出.这就是整个过程啦.
总结
- 更新Packages.gz解析安装包所依赖的文件
- 根据1的结果检查是否所需要的依赖都已经安装,假设没有安装,则下载(应该有自己的下载功能)这些依赖并进行安装,这个过程中会对每个依赖重复1、2这两个过程
- 解决依赖关系,下载指定软件并安装,2、3中如果找不到软件或者库,则失败.
Packages.gz已经包含所有所依赖的软件及其版本信息、以及下载地址.
apt-get常用命令
- sudo apt-get install package 安装包
- sudo apt-get remove package 删除包
- sudo apt-get update 更新源
- sudo apt-get upgrade 更新已安装的包
- apt-get source package 下载该包的源代码
还有一些命令:
- apt-cache search package 搜索软件包
- apt-cache show package 获取包的相关信息,如说明、大小、版本等
- sudo apt-get install package --reinstall 重新安装包
- sudo apt-get -f install 修复安装
- sudo apt-get remove package --purge 删除包,包括配置文件等
- sudo apt-get dist-upgrade 升级系统
- apt-cache depends package 了解使用该包依赖那些包
- apt-cache rdepends package 查看该包被哪些包依赖
- sudo apt-get build-dep package 安装相关的编译环境
- sudo apt-get clean && sudo apt-get autoclean 清理无用的包
- sudo apt-get check 检查是否有损坏的依赖
0 0
- apt-get 命令原理
- apt-get命令工作原理简介
- apt-get.apt-cache命令
- apt-get 工作原理
- apt-get 的原理
- apt-get 命令
- apt-get 命令
- apt-get 命令 (转)
- apt-get 命令
- apt-get命令
- apt-get一系列命令
- apt-get命令
- ubuntu apt-get命令
- apt-get 命令解释
- ubuntu apt-get命令
- apt-get命令详解
- apt-get命令
- apt-get 命令
- android textview xml 属性设置
- HTML中加入在Eclipse中写的java程序
- SQL Server安装
- Rank() over()的用法
- java操作mongodb(聚合函数)
- apt-get 命令原理
- cocos2d 制作光晕特效
- 第十七周项目四 两人生日差几天
- 认识romfs文件系统
- Unity检测鼠标碰撞或手指触摸
- [Swift]@UIApplicationMain
- C语言简单处理报文中固定格式、固定分隔符的字符串
- 【数据结构】USACO clocks
- Apache Commons Lang之toString()实现