admin管理员组

文章数量:1620368

  在linux上安装软件,安装方式和软件包获取的途径都远远比windows的丰富,那当然这就变得复杂很多,本文旨在理解linux下繁杂的软件安装、管理原理 ,学习软件的安装方式、源码包格式、远程软件源/软件仓库,本文很长,毕竟是最全;

文章目录

    • 一、linux安装软件的方式
    • 二、linux下软件管理于安装的要点认识
    • 三、linux下的丰富的软件包
        • Linux软件包分为两种形式
        • RPM和DEB软件包
    • 四、linux下查看文件详细信息
    • 五、linux下的软件包来源
    • 六、linux下的源码(Tarball)安装步骤
    • 七、Linux中的apt-get的相关操作及原理

一、linux安装软件的方式

1、手动方式(源码安装):需要用户手动配置、编译、安装,稍微麻烦些,但是最灵活;

2、半自动方式(二进制):使用传统的rpm、dpkg套件管理工具;本文以rpm为例;

3、全自动方式:unbuntu的apt-get、centos/redhat的yum套件管理工具;本文以apt-get为例;

ps:通过源码方式安装软件,可以同一个软件安装多个不同版本,而不会互相干扰,并且由于源码根据当前环境重新编译,运行性能会比二进制安装相对优化一点!

二、linux下软件管理于安装的要点认识

1、套件管理,即package manager,指的就是软件包管理; 如window的软件管家,具有下载、完整性校验、安装、升级、卸载、查询等基本功能,在Linux下的常见工具有半自动的rpm、dpkg;全自动的apt-get、yum;

2、所谓二进制,就是厂家根据特定的硬件、系统编译源码得到的linux可运行文件,因此使用二进制安装,要根据当前平台找到适用的二进制文件安装包;

3、如果要用到套件管理工具去安装软件,需要特定的软件包格式,主要有以下两种软件包格式,有以下对应关系:
  a、rpm工具:管理.rpm后缀的软件包;
  b、dpkg工具:管理.dep后缀的软件包;

这两种类型软件包通常是将所有相关文件(源码包、二进制包)打包成为一个特殊格式的文件,这个软件安装文件还包含预先检测系统与依赖软件的脚本,记录该软件的所有信息,用作建立数据库进行管理(升级、删除)等;

4、傳統的 Linux 使用 rpm , dpkg 來管理套件,但使用者需要手動管理套件之間的相依性(所谓依赖,指的是一个软件安装依赖于另一个或多个软件组件的安装),為解決套件的相依性,目前漸漸都改成為 yum (RedHat、SUSE、CentOS) 或是 apt-get (Ubuntu、Debian) . 使用apt-get / yum 会自动判断.dep / .rpm包的依赖,然后一次性把所有需要安装的N个.dep / .rpm统一下载安装,其实原理和使用tpm,dpkg手动一个个的安装没有什么本质区别。
因此:apt-get / yum分别为 dpkg、rpm的升级版;

三、linux下的丰富的软件包

Linux软件包分为两种形式

1、二进制包(binary code):是編好的 binary ,安裝就可用,一般以rpm/dep格式给出;

2、源代码包(source code):還沒編好的 source 源码,需要用户配置安裝;一般以tar打包,gz压缩,编译时间一般会很长~;

3、例子:
  a、rpm格式: libjpeg-devel-6b-33.x86_64.rpm #rpm格式很好区分;
  a、tar.gz格式:
    ①、二进制包: mysql-3.23.58-pc-linux-i686.tar.gz #二进制格式的包名字很长,会有版本号、适应平台、适应的硬件类型等;
    ②、源码包:php-5.2.14.tar.gz #而源码格式仅仅就是一个版本号的tar包。一般安装步骤:解压、./config、make、make install;

RPM和DEB软件包

要用到套件管理工具去安装软件,需要特定的包格式,应用到包管理工具的主要有以下两种源码包格式,不同格式要用不同的套管理工具,主要介绍RPM:
1、RPM和DEB
rpm包主要用于redhat及suse,centos,Fedora等 rpm(redhat package manager)
而deb包主要用于debian及ubuntu、BSD等。 deb(debian)

2、RPM(Red Hat Package Manager)
  是基于Red hat的Linux Distribution的包管理系统,同时也指rpm包本身,RPM用于rpm包的管理(诸如安装、卸载、升级等),像Mandrake和SuSE这些基于RPM的发行版通常有自己特定的rpm包,如果混合安装可能不会正常工作,而对于第三方发行的rpm包一般都能在基于RPM的系统上正常安装。
对于基于Debian的系统使用deb格式的包,有包转换工具使rpm与deb及其他文件之间互相转换(Alien Package Converter),其安装和升级可用dpkg,不过它不能很方便地处理包的依赖关系,比较省事的有dselect和apt-get, Ubunut是debian的变种, 其软件以deb包或者源文件的形式出现.

3、注意RPM包分兩種:binary rpm 跟 source rpm
  使用rpm包管理工具命令执行安装rpm包和源码包,rpm包以.rpm结尾,而源码包以.src.rpm结尾,可以理解为rpm包 = 二进制文件 + rpm管理需要的文件,.src.rpm包 = 源码文件 + rpm管理需要的文件,使用.src.rpm源码包一般步骤,用户配置(也可以采用默认配置),然后执行编译(编译命令rpmbuild),生成rpm包,再进行rpm安装, 嗯~,就是多一个编译步骤;

四、linux下查看文件详细信息

Linux下有个命令叫file,因为Linux并不是按照后缀名来判断文件类型的。所以一般在不清楚文件到底是什么类型的时候,就用file这个命令去判断。
file php-5.2.14.tar.gz
php-5.2.14.tar.gz: gzip compressed data, was “php-5.2.14.tar”, from Unix, last modified: Wed Jul 21 22:32:34 2010, max compression
这个php-5.2.14.tar.gz 明显是个gzip的压缩包,这样的文件一般都是用tar zxvf 命令去解包然后去配置编译安装的,通常情况把这种安装方法叫做源码编译安装。

file libjpeg-devel-6b-33.x86_64.rpm
libjpeg-devel-6b-33.x86_64.rpm: RPM v3 bin i386 libjpeg-devel-6b-33
这个libjpeg-devel-6b-33.x86_64.rpm 文件,就是个标准的redhat系列发行版本所用的RPM格式软件包。一般在RHEL、CentOS、SUSE、OracleLinux下都可以安装类似的RPM包。标准的安装方法是rpm -ivh。

五、linux下的软件包来源

1、各类镜像网站,软件的集中营,拥有绝大多数的软件包,如清华镜像、阿里云镜像网站等等;

2、官网就不必多说了,下载源码一般都去官网;

3、还可以去github等下载别人开发好的一些小工具;

小结
  一般在官网上下载的源码包都是以:tar.gz tar.bz2结尾的,经过编译的一般是以.rpm/.dep来结尾的,linux下的文件扩展名没有实际的意义,这样做只是为了方便你去查看是什么类型的包然后采取什么样的方式去安装和配置,当然有时候并不能从文件的扩展名去查看什么类型的包,因为文件名可以随意的去修改可以使用 “file” 这个命令去查看文件的详细类型.

六、linux下的源码(Tarball)安装步骤

在linux下的很多软件都是通过源码包方式发布的,这样做对于最终用户而言,虽然相对于二进制软件包,配置和编译起来繁琐点,但是它的 可移植性却好得多,针对不同的体系结构,软件开发者往往仅需发布同一份源码包,不同的最终用户经过编译就可以正确运行,这也是非常符合c语言的设计哲学的,一次编写,到处编译么,而常见的二进制包,比如rpm和deb,软件开发者必须为每种特定的平台定制好专门的软件包,这个通过rpm文件的后缀名就可以初见端倪,比如ppc,sparc,i386之类,在这里不做过多的陈述,其实源码安装软件远没有很多朋友想象的那么复杂,下面我在这里尽可能详细的做一些陈述,如有谬误,欢迎朋友们拍砖!

安装的具体步骤:
  1. $ tar zxvf XXXX.tar.gz (or tar jxvf XXXX.tar.bz2)
  2. $ cd XXXX
  3. $ ./configure
  4. $ make
  5. # make install

复制代码

  1. $ make clean

复制代码

安装完成后用来清理临时文件

  1. # make uninstall

复制代码

用来卸载软件

解压:

        最常见源码包的就两种(XXXX.tar.gz or XXXX.tar.bz2),其实这些源码包都是由2个工具压缩而成的,tar.gz结尾的文件用到的工具是tar和gunzip,而tar.bz2结尾的文件所使用的工具是tar和bzip2,之所以这样做是因为,tar仅仅能够打包多个文件但是没有压缩的功能,而gz和bz2却刚好相反,仅能够压缩单个文件,这样我们常见的源码包实际上是通过tar先将不同的源文件打包,然后再通过gunzip或者bzip2压缩后发布的,当然这两个步骤可以通过一条命令实现:

  1. $ tar zcvf XXXX.tar.gz XXXX(or tar jcvf XXXX.tar.bz2 XXXX)

复制代码

解压的相关命令如下:

  1. $ tar zxvf XXXX.tar.gz
  2. $ tar jxvf XXXX.tar.bz2

复制代码


./configure:

        解压完成就正式开始安装了(补充一点,开始configure之前,如有必要,请使用patch工具为源码打上相应的补丁),首先跳转到源码的解压目录,众所周知,开始configure前还是应该仔细阅读源码目录下的README或者INSTALL文件,好多安装中的注意事项在这里都有所罗列,configure实际上是一个脚本文件,在当前目录中键入"./configure",shell就会运行当前目录下的configure脚本,有一点必须说明,在整个configure过程,其实编译尚未进行,configure仅仅是做编译相关的准备工作,它主要对您当前的工作平台做一些依赖性检查,比如编译器是否安装,连接器是否存在,如果在检测的过程没有任何错误,你很幸运,configure脚本会在当前目录下生成下一步编译链接所要用到的另一个文件Makefile,当然configure支持及其丰富的命令行参数,可以键入"./configre --help"获取具体的信息,最常用的恐怕就是:

  1. $ ./configure --prefix=/opt/XXX

复制代码

它用来设置软件的安装目录. 

make:

        如果configure过程正确完成,那么在源码目录,会生成相应的Makefile文件,Makefile文件简单来说包括的是一组文件依赖关系以及编译链接的相关步骤,事实上真正的编译链接工作也不是make所做的,make只是一个通用的工具,一般情况下,make会根据Makefile中的规则调用合适的编译器编译所有与当前软件相依赖的源码,生成所有相关的目标文件,最后再使用链接器生成最终的可执行程序:

  1. $ make

复制代码


make install:

        当上面两个步骤正确完成,代表着编译链接过程已经完全结束,最后要做的就是将可执行程序安装到正确的位置,在这个步骤,普通用户可能没有相关目录的操作权限,临时切换到root是一个不错的选择,"install"只是Makefile文件中的一个标号,“make install"代表着make工具执行Makefile文件中"install"标号下的所有相关操作,如果在configure阶段没有使用”–prefix=/opt/XXX"指定应用程序的安装目录,那么应用程序一般会被默认安装到/usr/local/bin,如果/usr/local/bin已经存在于您的PATH中,那么安装已经基本结束:

  1. #make install

复制代码


make clean:
make uninstall:

        这两个步骤只是安装的后续操作,有一点必须注意,"clean"和"uninstall"也是Makefile文件中相应的两个标号,执行这两个步骤的时候Makefile文件必要保留,"make clean"用来清除编译连接过程中的一些临时文件,“make uninstall"是卸载相关应用程序,与make install类似,make uninstall也需要切换到root执行,不过"uninstall"标号在好多Makefile中都被省略掉了,朋友们完全可以自己在相应的Makefile文件一探究竟.

Why?
        在这里我尝试着解释一下上面这些步骤存在的理由,从C语言的角度来说,一个程序从源码到正确生成相关的可执行文件,下面这些部分必不可少:源文件,编译器,汇编器,连接器,依赖库,通过上面几个步骤,朋友们应该已经知道,真正执行编译链接操作的步骤只有一个(make),那其他步骤存在的理由何在?
        有一点是肯定的,我在自己的电脑上使用C语言写一些自娱自乐的小程序,也没有用到"configure or make install"之类的命令,顶多自己写个Makefile管理源文件的依赖关系,可是软件开发者不同,他必须考虑到软件的可移植性,他开发的软件不能仅仅就在他自己的pc上跑吧?不同的平台可能连硬件体系结构都不同,这样就导致了Makefile的不可移植性,为了解决这个问题,开发者通常使用autoconf之类的工具生成相应的configure脚本,而configure脚本就是用来屏蔽相应的平台差异,从而正确生成Makefile文件,然后make再根据configure的劳动成果(Makefile)完成编译链接工作.        
        至于"install or clean or uninstall”,也只是对应着Makefile文件中不同的规则,关于Makefile的详细信息,朋友们可以自行查阅相关的文档.

小结:
源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。

Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表。

其中–prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。

如果配置–prefix,如:

./configure --prefix=/usr/local/test
可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。

用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。

当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall。

七、Linux中的apt-get的相关操作及原理

Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类地存放在软件仓库中,进行有效地组织和管理。然后,将软件仓库置于许许多多的镜像服务器中,并保持基本一致。这样,所有的Ubuntu用户随时都能获得最新版本的安装软件包。因此,对于用户,这些镜像服务器就是他们的软件源(Reposity)。

然而,由于每位用户所处的网络环境不同,不可能随意地访问各镜像站点。为了能够有选择地访问,在Ubuntu系统中,使用软件源配置文件/etc/apt/sources.list列出最合适访问的镜像站点地址。

即使这样,软件源配置文件只是告知Ubuntu系统可以访问的镜像站点地址,但那些镜像站点具体都拥有什么软件资源并不清楚。若每安装一个软件包,就在服务器上寻找一遍,效率是很低的。因而,就有必要为这些软件资源列个清单(建立索引文件),以便本地主机查询。

apt-get install 下载的软件存放到 /var/cache/apt/archives/下。

同时,APT能够检查Ubuntu Linux系统中的软件包依赖关系,大大简化了Ubuntu用户安装和卸载软件包的过程。

apt-get是linux下的一种简便的安装和更新软件的方法,在装软件的时候常用的命令就是

Linux下的apt-get指令与相关文件夹

sudo apt-get install <软件名>
 
 
 
 
  • 1

下面介绍apt-get装软件的基本原理,首先,在本地有如下几个文件夹:

/var/cache/apt/archives

这个是利用apt-get install命令安装软件的临时存放软件包的位置



/var/lib/apt/lists

这个是用来存放已安装和未安装的软件列表的位置。我们用apt-get install的时候,实际上是从镜像源上下载软件,而镜像源的软件列表就存在这个lists文件中。通过apt-get update,就可以根据镜像源更新软件列表。

用户可以使用“apt-get update”命令刷新软件源(一般镜像服务器里的软件包会不定时更新),建立更新软件包列表。在Ubuntu Linux中,“apt-get update”命令会扫描每一个软件源服务器,并为该服务器所具有软件包资源建立索引文件,存放在本地的/var/lib/apt/lists/目录中。 使用apt-get执行安装、更新操作时,都将依据这些索引文件,向软件源服务器申请资源。因此,在计算机设备空闲时,经常使用“apt-get update”命令刷新软件源,是一个好的习惯。



/etc/apt/source.list

这个用来存放软件源站点目录,当我们执行apt-get install 的时候,实际上就是去这些站点下载的软件包。而且,这个文件的内容我们可以自己修改,因为有些源站点可能会被墙,所以可以修改为国内的一些镜像源。上面的那个lists文件里面放的那些软件列表,就是从source.list中给出的站点上找到的。



这里用的是大清的软件源,长这样:



apt-get install 等命令的基本原理

在下载软件的时候,我们通常先要进行软件列表的更新:

sudo apt-get update
 
 
 
 
  • 1

这个指令执行的是从source.list中按照里面的软件源的地址对lists中的软件列表进行更新。这样可以使得本机上的列表和服务器上的一样,以便可以成功的安装。

更新完成以后我们使用 install 命令进行安装,首先,会对lists中的软件列表进行扫描,找到最新版本的软件包,然后检查依赖项,找到支持该软件运行的依赖软件包,然后从source.list指定的镜像站点中下载所需软件包,并解压,自动完成配置。

apt-get install小结:
使用“apt-get install”下载软件包大体分为4步:第一步,扫描本地存放的软件包更新列表(由“apt-get update”命令刷新更新列表,也就是/var/lib/apt/lists/),找到最新版本的软件包;第二步,进行软件包依赖关系检查,找到支持该软件正常运行的所有软件包;第三步,从软件源所指 的镜像站点中,下载相关软件包;第四步,解压软件包,并自动完成应用程序的安装和配置。

如果想要卸载某个已经安装的软件,有

sudo apt-get install <软件名>-
 
 
 
 
  • 1

在软件名后面加一个连接符,这样可以同时执行安装和卸载



也可以用

sudo apt-get remove <软件名>
 
 
 
 
  • 1

效果是一样的



还有其他一些命令:

sudo apt-get remove <软件名>+
 
 
 
 
  • 1

上面这个可以用来安装,和install后面带减号对应,remove后面带加号表示安装。

sudo apt-cache search <软件名关键字>
 
 
 
 
  • 1

上面是查找部分包含关键字的软件包。

sudo apt-get source <源码包名>
 
 
 
 
  • 1

上面是下载软件包的源码。

sudo apt-get upgrade
 
 
 
 
  • 1

上面这个也是一个很实用的命令,可以用来将系统中所有的软件包一次性升级到最新版本。它会列出所需升级的包,然后进行升级。和update不同,update仅仅是通过软件源来更新本地列表,而upgrade是对软件包进行升级。

它可以很方便的完成在相同版本号的发行版中更新软件包。在依赖关系检查后,命令列出了目前所有需要升级的软件包,在得到用户确认后,便开始更新软件包的下载和安装。当然,apt- get upgrade命令会在最后以合理的次序,安装本次更新的软件包。系统更新需要用户等待一段时间。



sudo apt-get clean
 
 
 
 
  • 1

上面的是清理所有缓存文件,即在/var/cache/apt/archives/ 和 /var/cache/apt/archives/partial/中的没有lock的文件。

sudo apt-get autoclean
 
 
 
 
  • 1

上面这个只是清理低版本的文件,也就是说只有当有了更高版本的时候才会清理掉某个文件。

sudo apt-get --purge remove <软件名>
 
 
 
 
  • 1

上面这个是完全卸载软件,并且删除配置。

镜像软件源 sources.list 的配置

Ubuntu采用集中式软件仓库机制,将软件都放置于仓库中,并设置多个镜像服务器,这样所有的ubuntu用户都可以随时获得最新的软件包,这些镜像服务器成为软件源,即repository。

sources.list的格式如下:

deb http://mirrors.tuna.tsinghua.edu/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu/ubuntu/ xenial-proposed main restricted universe multiverse
 
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

deb 后面跟的就是镜像服务器的地址,deb-src指的是源文件的地址。xenial 指的是Ubuntu的版本号的codename,因为本机是16.04版本,因此对应于xenial,后面详述。xenial-security,xenial-backports等是子目录的名字。



然后 main restricted 等是软件的不同类别,一般来说,有以下四种:

  • main:完全的自由软件。
  • restricted:不完全的自由软件。
  • universe:ubuntu官方不提供支持与补丁,全靠社区支持。
  • muitiverse:非自由软件,完全不提供支持和补丁。

上面这个展示的是清华大学软件源的sources.list配置,还有其他可供选择的:

deb http://mirrors.aliyun/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun/ubuntu/ trusty-backports main restricted universe multiverse
 
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这是阿里云的源。

deb http://debian.ustc.edu/ubuntu/ trusty main multiverse restricted universe
deb http://debian.ustc.edu/ubuntu/ trusty-backports main multiverse restricted universe
deb http://debian.ustc.edu/ubuntu/ trusty-proposed main multiverse restricted universe
deb http://debian.ustc.edu/ubuntu/ trusty-security main multiverse restricted universe
deb http://debian.ustc.edu/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://debian.ustc.edu/ubuntu/ trusty main multiverse restricted universe
deb-src http://debian.ustc.edu/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://debian.ustc.edu/ubuntu/ trusty-proposed main multiverse restricted universe
deb-src http://debian.ustc.edu/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://debian.ustc.edu/ubuntu/ trusty-updates main multiverse restricted universe
 
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

中科大的。

deb http://mirrors.sohu/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.sohu/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.sohu/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.sohu/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.sohu/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.sohu/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.sohu/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.sohu/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.sohu/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.sohu/ubuntu/ precise-backports main restricted universe multiverse
 
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

搜狐的。

deb http://mirror.bit.edu/ubuntu/ precise main restricted universe multiverse
deb http://mirror.bit.edu/ubuntu/ precise-security main restricted universe multiverse
deb http://mirror.bit.edu/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirror.bit.edu/ubuntu/ precise-backports main restricted universe multiverse
deb http://mirror.bit.edu/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirror.bit.edu/ubuntu/ precise main restricted universe multiverse
deb-src http://mirror.bit.edu/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirror.bit.edu/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirror.bit.edu/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirror.bit.edu/ubuntu/ precise-proposed main restricted universe multiverse
 
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

北理工的,教育网适用。

deb http://archive.ubuntu/ubuntu/ trusty main restricted universe multiverse
deb http://archive.ubuntu/ubuntu/ trusty-security main restricted universe multiverse
deb http://archive.ubuntu/ubuntu/ trusty-updates main restricted universe multiverse
deb http://archive.ubuntu/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://archive.ubuntu/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://archive.ubuntu/ubuntu/ trusty main restricted universe multiverse
deb-src http://archive.ubuntu/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://archive.ubuntu/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://archive.ubuntu/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://archive.ubuntu/ubuntu/ trusty-backports main restricted universe multiverse
 
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这个是Ubuntu的官方源,国内较慢:



deb http://mirrors.163/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163/ubuntu/ trusty-backports main restricted universe multiverse
 
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

网易163的源。

其他的可以自行查找,若要更新sources.list建议先备份,如下:

sudo cp /etc/apt/sources.list /etc/apt/souces.list.bak
 
 
 
 
  • 1

然后直接将上述的内容替换掉sources.list的内容即可。(当然,codename要根据系统的版本替换掉,即上面的trusty等)

关于Ubuntu的Codename

上面讲到xenial是Ubuntu当前版本的codename。查看本机codename的方法如下:

lsb_release -a
 
 
 
 
  • 1

其中 lsb 代表 linux standard base ,结果如下:



可以看到,codename是xenial,实际上全名叫做 Xenial Xerus ,意思是好客的非洲地松鼠

16.04的codename的来历是这样的:

“What fortunate timing that our next LTS should be X, because “xenial” means “friendly relations between hosts and guests”, and given all the amazing work going into LXD and KVM for Ubuntu OpenStack, and beyond that the interoperability of Ubuntu OpenStack with hypervisors of all sorts, it seems like a perfect fit.

And Xerus, the African ground squirrels, are among the most social animals in my home country. They thrive in the desert, they live in small, agile, social groups that get along unusually well with their neighbours (for most mammals, neighbours are a source of bloody competition, for Xerus, hey, collaboration is cool). They are fast, feisty, friendly and known for their enormous… courage. That sounds just about right. With great… courage… comes great opportunity!”

—— Mark Shuttleworth

Ubuntu的版本六个月一次更新,一般分别于一年中的4月和10月发布,因此版本号中如16.04代表2016年4月的版本。而且,每两年会有一个LTS,long term support ,长期支持版本。比如 14.04 LTS,16.04 LTS等。而codename是每当发布一版Ubuntu,都会给它起一个小名,都是两个首字母相同的单词,然后都是动物。从6.06开始,首字母依次递增,现在已经增至xenial,即X了。据说18年4月的版本叫做 “Bionic Beaver”,意即“仿生河狸”。又回到了B。

下面是从6.06开始的每个版本的codename及其翻译:

16.04 LTS Xenial Xerus 好客的非洲地松鼠
15.10 Wily Werewolf 狡诈的狼人
15.04 Vivid Vervet 活泼的绿长尾猴
14.10 Utopic Unicorn 乌托邦独角兽
14.04 LTS Trusty Tahr 可靠的塔尔羊
13.10 Saucy Salamander 粗鲁的蝾螈
13.04 Raring Ringtail 卯足了劲的猫熊
12.10 Quantal Quetzal 缤纷的绿咬鹃
12.04 LTS Precise Pangolin 精准的穿山甲
11.10 Oneiric Ocelot 梦的虎猫
11.04 Natty Narwhal 敏捷的独角鲸
10.10 Maverick Meerkat 标新立异的的狐獴
10.04 LTS Lucid Lynx 清醒的猞猁
9.10 Karmic Koala 幸运的考拉
9.04 Jaunty Jackalope 活泼的鹿角兔
8.10 Intrepid Ibex 勇敢的野山羊
8.04 LTS Hardy Heron 坚强的苍鹭
7.10 Gutsy Gibbon 勇敢的长臂猿
7.04 Feisty Fawn 顽强的小鹿
6.10 Edgy Eft 锐利的蜥蜴
6.06 LTS Dapper Drake 整洁的公鸭

前述的需要替换的codename就是每一个代号的前面一个单词。常见的几版,如trusty和precise以及xenial是较新的几个LTS版。

本文标签: 最全详解源码操作系统软件