转自:大数据云技术基础之Linux源:/etc/apt/sources.list文件

导读

1./etc/apt/sources.list的作用是什么?
2.为什么会产生 /etc/apt/sources.list.d?
3.deb http://cn.archive.ubuntu.com/ubuntu/ precise main restricted中precise main restricted该如何解析?

正文

一般源信息都存在这个文件中。但众多软件源都放在一个文件里实在有点乱,于是新版ubuntu也有了分类的方法:

目录  /etc/apt/sources.list.d/

在这个目录下,随便起名字, 只要以 list 为扩展名即可。比如google chrome 的源就放在了/etc/apt/sources.list.d/google-chrome.list   文件中。

>> cat google-chrome.list
deb http://dl.google.com/linux/chrome/deb/ stable main

sources.list 文件的解析:

deb http://cn.archive.ubuntu.com/ubuntu/ precise main restricted这句话到底怎么解释,对应着服务器上的什么目录呢?对应的是:

http://cn.archive.ubuntu.com/ubuntu/dists/precise/main

http://cn.archive.ubuntu.com/ubuntu/dists/precise/restricted

也就是说,解析规则是这样的 :

uri + "dists" + 版本信息 + 若干个分类

http://cn.archive.ubuntu.com/ubuntu/dists   这个目录下有若干目录,各个目录代表Ubuntu的版本

http://cn.archive.ubuntu.com/ubuntu/dists/precise/  在precise这个版本目录下还有有若干目录,里面有

deb-src 会对应 source,deb 会对应 binary-xxx  ,xxx就是arch,比如i386(32位)或是amd64(64位)。

比如想自己指定 arch,那就这么写:

deb [arch=amd64] http://cn.archive.ubuntu.com/ubuntu/ precise main restricted

则对应:

http://cn.archive.ubuntu.com/ubuntu/dists/precise/main/binary-amd64/

解析时会自动加上 "binary-"。另外这里坑爹的是,必须要加 [] ,不然就报错。

最后再罗嗦几句:

还是看 deb http://cn.archive.ubuntu.com/ubuntu/ precise main restricted

在 http://cn.archive.ubuntu.com/ubuntu/dists/precise 下应该存在 Release 文件,在这个文件中会有目录的详细信息

也就是说,你自己拼地址的时候,uri + version 要拼到一个有 Release 的目录,不然就会报错。

还有,Release文件如果和实际的目录结构不符(怪事年年有),那就要用前面说的 option 了,good lucky!

这个例子使用的是稳定的软件库。在实际中间,稳定的发行版本没有别的发行版本那么频繁地变化。所有最新的软件包都包含在Debian最新但尚不完善的不稳定(unstable)发行版本中。“不稳定”未必意味着软件包自身不稳定,而是整个发行版本的组成不稳定。每周更新的软件量一般超过100MB。

sources.list文件里的配置行按顺序逐行分析,所以从理论上说,您可以把unstable和testing行放在文件末尾,让stable(稳定)版本优先。这个方法的问题是,因为APT的依赖性延伸,一个不稳定的软件包会把它所依赖的所有软件包的不稳定更新版本都带进来。这些软件包接下来又可能会把自己所关联软件的不稳定版本再带进来,以此类推。一个老鼠坏了一锅汤,不要在您的生产系统上安装不稳定的软件包。

如果您必须把一个从unstable(不稳定)发行版本来的软件包加到您的生产环境中,正确的做法是使用一个“向后移植(backport)”的软件,即在稳定发布上重新编译它,让它同稳定的库链接。为了找到这些backport和其他细节,可检查位于www.apt-get.org的APT搜索引擎。在Norbert Tretkowski的站点www.backports.org上,能够找到许多向后移植的软件包(不只是给出链接)。在这个软件库中的向后移植软件包质量都很高,对外部的依赖性也最低。

/etc/apt/sources.list 和 /etc/apt/sources.list.d的更多相关文章

  1. Linux软件安装管理之——dpkg与apt-*详解 apt命令(dpkg和apt代替rpm)

    apt list *python* Nosee123关注赞赏支持   Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件 ...

  2. debian配置---->/etc/apt/sources.list apt基本源设置指南

    yum或apt基本源设置指南   关于: 管理Linux服务器的运维或开发人员经常需要安装软件,最常用方式应该是通过Linux系统提供的包管理工具来在线安装,比如centos的yum,ubuntu或d ...

  3. 聊聊 apt sources.list 文件格式

    前言 之前玩 ubuntu 需要切换国内源地址时,都是网上复制别人提供好的,也不知道是什么意思,拿来就用. 这次花点时间来看一下 apt sources.list 的格式,以及其表示的含义. 格式 s ...

  4. Ubuntu apt 常用命令

     APT(the Advanced Packaging Tool)是Ubuntu 软件包管理系统的高级界面,Ubuntu 是基于Debian的,APT由几个名字以“apt-”打头的程序组成.apt-g ...

  5. PostgreSQL Apt Repository

    PostgreSQL Apt Repository If the version included in your version of Ubuntu is not the one you want, ...

  6. yum或apt基本源设置指南

    关于: 管理Linux服务器的运维或开发人员经常需要安装软件,最常用方式应该是通过Linux系统提供的包管理工具来在线安装,比如centos的yum,ubuntu或debian的apt-get.当然这 ...

  7. How to fix the sources list

    How to fix the sources list Sometimes the apt-get may not work, it is often caused by the misspelled ...

  8. Ubuntu 如何使用apt命令安装、升级、卸载软件

    apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸载软件或操作系统. apt-get命令一般需要root权限执行,所以一般跟着su ...

  9. ubuntu 安装软件(apt源)

    最近使用docker 构建python3的环境: 进入容器发现 连个vi命令多没有... 1.安装一个呗: apt-get 报错:root@22f41d59e3b2:~# apt-get instal ...

随机推荐

  1. Data - 数据思维 - 中篇

    6 - 模型与框架 利用现有的成熟的理论.模型与框架,结合实际业务情况,搭建分析框架,尽量确保数据分析维度的完整性,结果的有效性及正确性. 营销理论模型:4P.用户使用行为.STP理论.SWOT等. ...

  2. Python基础--软件Anaconda的下载与安装

    1.Anaconda软件的优点: Anaconda指的是一个开源的Python发行版本开发平台,在进行Python开发上方便简洁,有利于初步学习和实践深度学习. 2.Anaconda软件的下载: An ...

  3. dotnet core use RabbitMQ

    安装RabbitMQ 自从使用了Docker之后,发现Docker真的是比虚拟机好用啊, 因此我这里在Docker里面创建一个RabbitMQ容器. 这里注意获取镜像的时候要获取management版 ...

  4. Java静态分派和动态分派

    前言 动态分派和静态分派机制是Java多态实现的原理.本文将针对这两种机制进行浅析. 静态分派 静态分派机制最典型的代码示例如下 void test() { Father father = new S ...

  5. Web服务器和Tomcat

    Web服务器常用: WebLogic:是BEA公司的推出的产品,现在已经被oracle收购,是目前应用最广泛的Web服务器,支持JavaEE规范,商用收费,开发者可以免费使用. WebSphere:I ...

  6. centos7安装php7.3的redis扩展(不是redis服务!)

    PHP其他扩展加装扩展也是一样的步骤~ PHP官网下载redis扩展: http://pecl.php.net/package/redis 稳定版吧: [root@wf ~]# wget http:/ ...

  7. python学习-60 面向对象设计

    面向对象设计 1.三大编程范式 --面向过程编程 --函数式编程 --面向对象编程 2.编程进化论 --编程最开始就是无组织无结构,从简单控制流中按步写指令 --从上述的指令中提取重复的代码快或逻辑, ...

  8. PAT甲级题分类汇编——序言

    今天开个坑,分类整理PAT甲级题目(https://pintia.cn/problem-sets/994805342720868352/problems/type/7)中1051~1100部分.语言是 ...

  9. 米联客 osrc_virtual_machine_sdx2017_4 虚拟机的使用

    今天大部分时间都在高csdn的博客的,一直无法和word关联,来不及写使用教程了,先发下载链接. 虚拟机安装的是ubuntu16.4.3,vivado软件是SDX2017.4版本,包括的vivado2 ...

  10. javascript Ajax 学习

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! AJAX是asynchronousjavascript and XML的简写,就是异步的javascrip ...