关于apt 仓库 包 更新

概念介绍:

软件源是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

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

时间: 2024-10-17 05:47:05

关于apt 仓库 包 更新的相关文章

第一篇:Unity3d游戏开发之移动端完整包更新方案

由于Unity没法进行热更新,也就是局部更新,所以如果你在设计之前没有考虑好使用Lua,反射,或者其他方式实现热更新,但是又要面临游戏上线那么你可以考虑使用完整包更新,其实这对于游戏包不是很大的情况下,也是一个不错的选择,当然设计者在设计之初都想好了热更新那就宁当别论了. Unity3d 在移动端考虑Android和Ios平台的完整包更新 实现逻辑: 首先检查本地的版本和服务器的版本是否相同,如果相同则直接进入游戏,如果不同则下载服务器的最新文件,然后根据最新文件到资源服务器下载最新的安装包 我

获取远程仓库的更新

如果需要同步远程仓库的分支,或者说是远程仓库有新的分支了,你需要查看,可以使用fetch来获取远程仓库的更新信息. 1.右键项目text->Team->Remote->Fetch From... 2.上图中默认配置不变,Next> 3.上图中是默认获取全部分支的更新情况,如只需获取指定分支的更新情况,按下图操作 获取远程仓库的更新,布布扣,bubuko.com

Ubuntu 16.04 LTS软件包管理基本操作使用APT简化命令行下面我们列出 Ubuntu 16.04 LTS 中使用 ATP 命令与老版本 Ubuntu 中软件包管理的用法对比: Ubuntu 16.04 LTS 老版本Ubuntu apt install 包名 替代 apt-get install 包名 apt remove 包名 替代 apt-get remove 包名 apt se

前文 Ubuntu 16.04 新特性中我们已经介绍过,随着 Ubuntu 16.04 LTS 的发布,Ubuntu 的软件包管理命令也发生了变化,新系统采用了 Debian 项目中所使用的 APT(Advanced Package Tool)来完成各种的不同的任务,ATP 命令全面取代了我们之前在 Linux 软件包管理基本操作入门中所介绍的 apt-get.apt-cache 等功能. ATP 在创建之初便是为了解决大量软件包管理所遇到的问题,希望结束类似 Linux 早期系统依赖的一大弊病

Anaconda 包更新故障集锦(持续更新)

1. 用pip安装包keras,报错误信息 TypeError: string argument expected, got 'NoneType': PS C:\Users\GoFree> pip install keras --upgrade # 包更新语句 Collecting keras Downloading https://files.pythonhosted.org/packages/54/e8/eaff7a09349ae9bd40d3ebaf028b49f5e2392c771f29

R包更新的注意点

install.packages("installr") library(installr) updateR() 用上面的代码可以将R包更新到最新版,需要注意的一点是,后面安装过程中,指定R包安装目录时,需设定在原R包所在目录下.这样可以将原R包中的安装包直接copy过来,并选择是否升级 原文地址:https://www.cnblogs.com/zhengzh/p/9329056.html

Maven本地仓库中jar包更新的依据

对于某个jar包,Maven如何判断远程仓库的jar包比本地仓库中的相应jar包要新呢?当我重新部署到私服上以后,下次执行maven命令的时候会自动下载最新的jar包,那么maven怎么知道要更新呢? 对于这个问题,在网上也没找到十分确切的答案. 所以,我大胆猜测,可能是通过时间戳或者校验和之类的来判断jar包的新旧程度. 猜想1:时间戳 当部署的时候,记录一个当前时间戳,之后我们下载到本地仓库的jar的时间戳就是这个jar包最后一次更新的时间戳.此后,重新打包部署这个jar包,时间戳也随之改变

apt仓库以及apt-get分析

1 debian repository 参考:https://wiki.debian.org/DebianRepository 1.1 版本代号 sid,still in development,该版本和unstable版本是一样的. 版本可以从多个侧面来进行命名. 第一,从release的角度进行命名.比如,buster.jessie.stretch 第二,使用数字编码,比如7.8.9,然后还有小版本,7.11.8.9 第三,对于当前最新的开发版本,又可以命名为stable.unstable和

关于自动化安装离线补丁包更新

在平时的很多运维工作中,有时企业会部署专门的更新服务器,如使用WSUS服务器,但是如果企业还没有来得及部署此类服务器,而服务器需要更新大批量管理手动下载的更新补丁时该如何操作呢? 当然,会有同学说一个一个安装-但是这就需要管理员一直守在服务器旁边,等待完成一个再安装,太浪费时间了,有没有一自动化安装的方法呢?我们说当然是有的,方法如下:     首先,将下载好的补丁包存放在服务器某个目录中,并在该目录中创建一个批处理文件,批处理文件内容如下: @echo off @echo 正在安装window

使用清华大学开源软件镜像AOSP的“每月更新初始化包”更新指定版本的Android源码

参照官方教程:Tsinghua Open Source Mirror 1. 下载了repo工具 mkdir  ~/bin PATH = ~/bin:$PATH curl  https://storage.googleapis.com/git-repo-downloads/repo  > ~/bin/repo chmod  a+x  ~/bin/repo 2. 下载了每月更新初始化包 wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/ao