• apt系统中sources.list文件的解析



    为什么要分析 sources.list 的解析? 我不是APT的开发者, 仅仅是遇到了躲只是的问题,不分析就没法update,详细原因就不详述了,反正搜索到这篇文章的人,肯定也是碰到了类似的问题。什么?你没有问题? 那还浪费时间看这个干嘛? 

    为啥这么说呢? 由于我花了非常多时间,搞明确了 apt sources.list 的格式,问题攻克了,但是这些知识又有什么意义呢? 和我真正想干的事全然不相干啊,纯属浪费时间而已。这属于被逼无奈的被动无用功, 由于不搞明确了就没法干正事. .

    所以,读了王垠近期的吐槽:《谈 Linux,Windows 和 Mac》后( http://www.yinwang.org/blog-cn/2013/03/07/linux-windows-mac/),我是真心赞同他的某些观点:在易用性方面,linux和windows还差得非常远。

    但是话又说回来了,我们对大牛也不能一味盲从~ 苹果相同是 unix 内核,如今大家公认的,苹果在易用性方面做到了最好(也不完美,但好歹比其它的都强);android 用的 linux内核,易用性也相当不错。所以我认为,这个易用性和*nix还是windows没啥必定的联系,易用性是个水磨功夫,无论是方便的各种GUI界面,还是整个系统级的统一接口风格,都要有强大的利益驱动,才会有人去做。不然我仅仅是自己写着玩的,激情过后,谁还有心情再翻来覆去的为别人怎么用担心,反正我自己用着没不论什么问题,你认为不好用?  那仅仅能说明你笨。。。


    吐槽结束,以下是具体内容:

    -----------------------------------

    /etc/apt/sources.list

    一般源信息都存在这个文件中。但众多软件源都放在一个文件中实在有点乱,于是新版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


    很多其它的背景信息就不说了,随便google一下就有比我具体得多的介绍, 仅仅说说我google了半天也没找到,浪费了不少时间才分析出来的东西: sources.list 文件的解析:


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


    这句话究竟怎么解释,相应着server上的什么文件夹呢?  相应的是:


    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/  这个文件夹下有若干文件夹,里面有


    binary-amd64/                                      26-Apr-2012 06:49       -
    binary-i386/                                       26-Apr-2012 06:49       -
    debian-installer/                                  14-Oct-2011 08:29       -
    dist-upgrader-all/                                 21-Apr-2012 01:33       -
    i18n/                                              26-Apr-2012 06:49       -
    installer-amd64/                                   24-Apr-2012 03:35       -
    installer-i386/                                    24-Apr-2012 04:05       -
    source/


    deb-src 会相应 source,deb 会相应 binary-xxx  ,xxx就是arch,比方i386(32位)或是amd64(64位)。(其它的未深究)


    默认会 If this option is not set all architectures defined by the APT::Architectures option will be downloaded.

    option 是啥?比方想自己指定 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-"。另外这里坑爹的是,必需要加 [] ,不然就报错。man 里是这么写的:

    deb [ options ] uri distribution [component1] [component2] [...]


    尼玛这样的写法谁知道是一定要加[]啊! 我開始就直接无视,结果浪费非常多时间。。


    最后再罗嗦几句:

    还是看 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!


  • 相关阅读:
    开发中的报错问题
    vue2.0入门
    nodejs的一些基操
    git
    es6模块化规范
    js面向对象的笼统介绍
    this指向问题(改变它的指向)
    js面向对象杂谈
    原生js贪吃蛇
    bootstrap基础自我总结
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4007229.html
Copyright © 2020-2023  润新知