转自:大数据云技术基础之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. jenkins--master/slave模式---master是容器版---slave是非容器版

    实验架构: 192.168.0.96 gitlab 192.168.0.97 jenkins.tomcat 192.168.0.98 harbor.docker集群.git.jdk.maven 1.先 ...

  2. HDU 2089 不要62 数位DP模板题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 参考博客:https://www.cnblogs.com/HDUjackyan/p/914215 ...

  3. [转]Ubuntu安装ss客户端

    链接:https://www.cnblogs.com/hoanfir/p/9308148.html 配置好后,使用 chromium-browser --proxy-server=socks5://1 ...

  4. JS中search查找某些内容,正则表达式|查找分隔的任何项

    JS中可以用indexOf来查找某个字符串里的某些内容的索引,也就是在字符串的位置.如果存在该字符串,会返回该字符串的索引,如果不存在会返回-1,可以通过某些内容的索引是否为-1判断是否存在该字符串. ...

  5. web端自动化——python多线程

    Python通过两个标准库thread和threading提供对线程的支持.thread提供了低级别的.原始的线程以及一个简单的锁.threading基于Java的线程模型设计. 锁(Lock)条件变 ...

  6. 【GStreamer开发】GStreamer基础教程13——播放速度

    目标 快进,倒放和慢放是trick模式的共同技巧,它们有一个共同点就是它们都修改了播放的速度.本教程会展示如何来获得这些效果和如何进行逐帧的跳跃.主要内容是: 如何来变换播放的速度,变快或者变慢,前进 ...

  7. solr搜索结果转实体类对象的两种方法

    问题:就是把从solr搜索出来的结果转成我们想要的实体类对象,很常用的情景. 1.使用@Field注解 @Field这个注解放到实体类的属性[字段]中,例如下面 public class User{ ...

  8. 《Mysql - Mysql 是如何保证主备一致的?》

    一:Mysql 主备的基本原理? - 主备切换流程(M-S 架构) -  - 在状态 1 中,客户端的读写都直接访问节点 A,而节点 B 是 A 的备库,只是将 A 的更新都同步过来,到本地执行. - ...

  9. Java串口通信 RXTX 解决过程

    背景介绍: 由于第一次用Java与硬件通信,网上查了许多资料,在这进行整理,便于以后学习.本人串口测试是USB串口设备连接电脑,在设备管理器中找到端口名称(也可以通过一些虚拟串口工具模拟). 下面主要 ...

  10. python 之 前端开发( JavaScript变量、数据类型、内置对象、运算符、流程控制、函数)

    11.4 JavaScript 11.41 变量 1.声明变量的语法 // 1. 先声明后定义 var name; // 声明变量时无需指定类型,变量name可以接受任意类型 name= " ...