码迷,mamicode.com
首页 > 其他好文 > 详细

关于apt 仓库 包 更新

时间:2018-03-28 01:26:51      阅读:1560      评论:0      收藏:0      [点我收藏+]

标签:发行版   在服务器   basedir   sele   列表   高效   lin   arch   操作   

概念介绍:

软件源是debian系的概念,把软件放在一个pool里面,用一条命令就可以自动从指定服务器下载并安装。

源列表是/etc/apt/sources.list,里面写了你所用的服务器地址

(其中 /etc 代表附加物的意思,英文全称etcetra。换句话说,是一个底层的重要项目,通常添加一些次等重要的零碎事物。今天, “etc”包含了广泛的系统配置文件,这些配置文件几乎包含了系统配置的方方面面,同样非常重要。

 (Advanced Packaging Tool(apt)是Linux下的一款安装包管理工具,是一个客户/服务器系统。)

作为操作的一部分,APT使用一个文件列出可获得软件包的镜像站点地址,这个文件就是/etc/apt/sources.list

 

最初只有.tar.gz的打包文件,用户必须编译每个他想在GNU/Linux上运行的软件。用户们普遍认为系统很有必要提供一种方法来管理这些安装在机器上的软件包,当Debian诞生时,这样一个管理工具也就应运而生,它被命名为dpkg。从而著名的“package”概念第一次出现在GNU/Linux系统中,稍后Red Hat才决定开发自己的“rpm”包管理系统。
很快一个新的问题难倒了GNU/Linux制作者,他们需要一个快速、实用、高效的方法来安装软件包,当软件包更新时,这个工具应该能自动管理关联文件和维护已有配置文件。Debian再次率先解决了这个问题,APT(Advanced Packaging Tool)作为dpkg的前端诞生了。APT后来还被Conectiva改造用来管理rpm,并被其它Linux发行版本采用为它们的软件包管理工具
 
 
工作原理:
APT是一个客户/服务器系统。在服务器上先复制所有DEB包(DEB是Debian软件包格式的文件扩展名),然后用APT的分析工具(genbasedir)根据每个DEB 包的包头(Header)信息对所有的DEB包进行分析,并将该分析结果记录在一个文件中,这个文件称为DEB 索引清单,APT服务器的DEB索引清单置于base文件夹内。一旦APT 服务器内的DEB有所变动,一定要使用genbasedir产生新的DEB索引清单。客户端在进行安装或升级时先要查询DEB索引清单,从而可以获知所有具有依赖关系的软件包,并一同下载到客户端以便安装。
当客户端需要安装、升级或删除某个软件包时,客户端计算机取得DEB索引清单压缩文件后,会将其解压置放于/var/state/apt/lists/,而客户端使用apt-get install或apt-get upgrade命令的时候,就会将这个文件夹内的数据和客户端计算机内的DEB数据库比对,知道哪些DEB已安装、未安装或是可以升级的。
 
大概的意思是 APT是个客户端,这个客户端先从服务器上获取所有包的信息,并记录在一个清单里。当用户使用apt-get之类的指令时,无论是升级 安装 还是删除。APT都会先去找清单(清单里有服务器包的信息),然后对照本地的库。知道哪些包安装了,哪些没安装,哪些是可以升级的。
 
常用命令:
sudo apt-get install # ——(package 安装包)
 
apt-cache depends #——-(package 了解使用依赖)
 
apt-get update# ——(升级来自 Debian 镜像的包裹列表,如果你想安装当天的任何软件,至少每天运行一次,而且每次修改了/etc/apt/sources.list 后,必须执行。)看仓库本身有没有要更新的
 
apt-get upgrade [-u]# ——(升级所有已经安装的包裹为最新可用版本。不会安装新的或移除老的包裹。形前端(其中一些在使用前得先安装)。这里 dselect 无疑是最强大的,也是最古老,最难驾驭。)看仓库里有没有要更新的包。
 
不随便更新,自身环境稳定最重要。
 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

转自知乎:

因为 Linux 和 Windows 不一样,同一发行版(比如 Ubuntu) 的不同版本(比如 14.04, 14.10 )用的软件仓库是不一样的,所以有仓库 (repository ) 这样的概念,自然就有了要更新仓库信息的逻辑。

一般来说你不更新仓库信息, upgrade 就在本地的旧仓库转悠一圈发现并没有要更新的,但实际上本地仓库已经过时了。

这也是为什么用 apt 查找某个包的命令是 apt-cache search xxx 的原因,用的是本地 cache 了仓库信息。

作者:知乎用户
链接:https://www.zhihu.com/question/21732981/answer/95438500
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 sources.list  存放有你要访问的软件源的地址。

这个文件时只读的 要修改一下权限。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

apt-get的安装包放在哪里:
ubuntu中由apt-get获得的文件包保存在/var/cache/apt/archives;

通过apt-get命令下载的软件包,放在/var/cache/apt/archives 目录下;
下载文件位置可以在/etc/apt/source.list文件中指定。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

相关链接:

http://www.360doc.com/content/10/1206/00/4954359_75382037.shtml

关于apt 仓库 包 更新

标签:发行版   在服务器   basedir   sele   列表   高效   lin   arch   操作   

原文地址:https://www.cnblogs.com/grooovvve/p/8661054.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!