窗体底端
ubuntu更改apt源
在安装完ubuntu之后,我们一般都需要将apt源替换为阿里云等国内软件源站点,以便提高响应速度。
这里使用的是Ubuntu18.04发行版本
其实Ubuntu18.04版之前的任一版更改apt源为国内源方法早就有了,内容大同小异,我们应当掌握其规律了,其实每一版内容不同的地方就是版本号(或者官方一点的说:系统代号),所以我们先了解下新版本的系统代号:
使用如下命令查看:
1lsb_release -c
执行后输出如下
wxh@wxh-ThinkPad-E570:/etc/apt$ lsb_release -c
Codename: bionic
我们可以看到新版本的Ubuntu系统代号为bionic
同样的我们也可以得到之前任意版本的系统代号:
Ubuntu 12.04
(LTS)代号为precise。
Ubuntu 14.04
(LTS)代号为trusty。
Ubuntu 15.04 代号为vivid。
Ubuntu 15.10 代号为wily。
Ubuntu 16.04
(LTS)代号为xenial。
所以这也就解释了为什么我们百度出来的那么多方案里面内容不尽相同的原因,因为他们更改apt安装源时用的系统不一样。
下面开始实际操作
备份源文件
我们要修改的文件是sources.list,它在目录/etc/apt/下,sources.list是包管理工具apt所用的记录软件包仓库位置的配置文件,同样类型的还有位于 同目录下sources.list.d文件下的各种.list后缀的各文件。
命令如下:
1sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
编辑源文件内容
1sudo vim /etc/apt/sources.list
将原有的内容注释或删除掉,添加以下内容
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
配置格式说明:
我们可以看到sources.list文件的条目都是有格式的(通过上面的内容大家也看的出来),一般有如下形式
deb http://site.example.com/debian distribution component1 component2 component3
deb-src http://site.example.com/debian distribution component1 component2 component3
后面几个参数是对软件包的分类(Ubuntu下是main,restricted,universe ,multiverse这四个)
补充-/etc/apt/sources.list 详解
/etc/apt/sources.list 是包管理工具 apt 所用的记录软件包仓库位置的配置文件,同样的还有位于/etc/apt/sources.list.d/*.list 的各文件。
sources.list 文件中的条目一般都有如下所示的形式:
deb http://site.example.com/debian distribution component1 component2 component3
deb-src http://site.example.com/debian distribution component1 component2 component3
档案类型(Archive type)
条目的第一个词 deb 或是 deb-src 表明了所获取的软件包档案类型。
其中:
deb
档案类型为二进制预编译软件包,一般我们所用的档案类型。
deb-src
档案类型为用于编译二进制软件包的源代码。
仓库地址(Repository URL)
条目的第二个词则是软件包所在仓库的地址。我们可以更换仓库地址为其他地理位置更靠近自己的镜像来提高下载速度。
常用镜像地址列表:
Debian
https://www.debian.org/mirror/list
Ubuntu
http://wiki.ubuntu.org.cn/源列表
发行版(Distribution)
跟在仓库地址后的是发行版。发行版有两种分类方法,一类是发行版的具体代号,如xenial,trusty, precise 等;还有一类则是发行版的发行类型,如oldstable, stable, testing 和 unstable。
另外,在发行版后还可能有进一步的指定,如xenial-updates, trusty-security, stable-backports 等。
软件包分类(Component)
跟在发行版之后的就是软件包的具体分类了,可以有一个或多个。
不同的 Linux 发行版对软件有着不同的分类,如:
Debian
main
包含符合 DFSG 指导原则的自由软件包,而且这些软件包不依赖不符合该指导原则的软件包。这些软件包被视为 Debian 发型版的一部分。
contrib
包含符合 DFSG 指导原则的自由软件包,不过这些软件包依赖不在main 分类中的软件包。
non-free
包含不符合 DFSG 指导原则的非自由软件包。
Ubuntu
main
官方支持的自由软件。
restricted
官方支持的非完全自由的软件。
universe
社区维护的自由软件。
multiverse
非自由软件。
Ubuntu 对软件包的分类可以用下表来表示(参考自 Wikipedia):
自由软件非自由软件
官方支持的MainRestricted
非官方支持的UniverseMultiverse
补充-update和upgrade
每个LINUX的发行版,比如ubuntu、centos等,都会维护一个自己的软件仓库,我们常用的几乎所有软件都在这里面。这里面的软件绝对安全,而且绝对的能正常安装。
在UBUNTU下,我们维护一个源列表,源列表里面都是一些网址信息,这每一条网址就是一个源,这个地址指向的数据标识着这台源服务器上有哪些软件可以安装使用。
编辑源命令:
1sudo vim /etc/apt/sources.list
在这个文件里加入或者注释(加#)掉一些源后,保存。这时候,我们的源列表里指向的软件就会增加或减少一部分。
获得最近的软件包的列表:(列表中包含一些包的信息,比如这个包是否更新过)
1sudo apt-get update
这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。软件包管理器里看到的软件列表,都是通过update命令更新的。
update后,可能需要upgrade一下。
1sudo apt-get upgrade
这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。如果你的软件都是最新版本,会提示:
1升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
总而言之,update是更新软件列表,upgrade是更新软件。
注意:一般在执行 sudo apt-get upgrade 命令之前需要先执行一下 sudo
apt-get update;这其实和windows下的软件检测更新是一样的,需要更新的会帮你自动更新并安装好
apt-get update 命令会同步使用者端和APT服务器的RPM 索引清单(package list),APT 服务器的RPM 索引清单置于base资料夹内,使用者端电脑取得base 资料夹内的bz2 RPM 索引清单压缩档后,会将其解压置放于/var/state/apt/lists/,而使用者使用apt-get install 或apt-get dist-upgrade 指令的时候,就会将这个资料夹内的资料和使用者端电脑内的RPM 资料库比对,如此一来就可以知道那些RPM 已安装、未安装、或是可以升级的。