Linux 生态下,几乎每个发行版都有自己的软件库(software repositories),Ubuntu 当然也不例外。Ubuntu 提供了四个不同的软件库,分别是 main、restricted、universe 和 multiverse:

本文主要介绍它们之间的区别。本文的演示环境为 Ubuntu Desktop 18.04。

Main 库

Main 库由 Ubuntu 官方支持,其中的软件都是开源免费的。Ubuntu 的默认安装中的所有开源软件都在 main 库中,另外还有一些比较重要的服务器软件也被包含在 main 库中。在 Ubuntu 发行版的生命周期中,main 库中的软件会有安全更新,严重的问题会被修复。

Main 库是 Ubuntu 最重要的软件库,Ubuntu 官方(实际上是 Canonical 公司)承诺在发行版的生命周期中,这里面的每一个软件包都会收到安全补丁和严重问题的修复补丁。比如对于 Ubuntu LTS(长期支持版)来说,支持周期为五年,就是保证在五年内会有安全更新。而这里的安全更新,实际上就是对 main 库中的包进行安全更新。之所以会有这样的保证,也是因为 main 库中的软件都是开源软件,Ubuntu 自己的开发人员就可以修复这些问题而无需依赖第三方。

在 Ubuntu Desktop 中通过 GUI 工具管理软件时,可以在软件的详细信息处看到该软件属于哪个库,比如下图中的 Vim 属于 main 库:

Restricted 库

Restricted 库中包含 Ubuntu 官方支持的闭源软件(Closed-Source),主要是一些硬件驱动程序。比如运行一些游戏程序,需要安装 NVIDIA 或 AMD 的图形驱动程序来获得最佳的图形硬件性能。这些驱动程序可以通过 Ubuntu 中的其他驱动管理工具来启用。

Ubuntu 官方将在承诺的支持期内为这些闭源的驱动程序和固件包提供支持。他们致力于让这些驱动程序继续工作,解决任何严重的问题,并堵住任何的安全漏洞。当然,Ubuntu 自己无法做到这一点——当出现问题时,他们必须等待硬件制造商发布新的驱动程序或更新有问题的驱动程序。因为代码不是开源的,所以 Ubuntu 官方无法自己修复它,这就是为什么这里只包含关键的硬件驱动程序的原因(没有其他的封闭源软件得到官方支持)。

Universe 库

Universe 库中存放的是由社区维护的开源软件。我们在 GUI 工具 Ubuntu Software 中看到的软件多数都来自 universe 库:

这些软件包要么是自动从最新版本的 Debian 库中导入的,要么是由 Ubuntu 社区上传和维护的。
Ubuntu 不为 universe 库中的软件提供官方支持或更新。即便不能收更新,universe 库中的软件通常也能够运行的很好。所以我们基本上可以放心的使用 universe 库中的软件!
但是,在服务器系统上,需要我们考虑安装的服务器软件是 main 库的一部分还是  universe 库的一部分。如果它来自 universe 库,您需要关注其安全性更新。如果发现漏洞,您需要自己更新该服务器软件。

同样在 Ubuntu Software 中,可以在软件的详细信息处看到该软件是否属于 universe 库,比如下图中的 plan 程序就属于 universe 库:

Multiverse 库

Multiverse 库是不受 ubuntu 官方支持的软件、闭源软件和专利授权软件聚集的地方。这是哪些有争议的东西存在的地方。它包括像 Adobe Flash 插件这样的闭源软件,和那些依赖于闭源软件的包,比如 Skype 的插件。它还包括受法律限制的开源软件,例如侵犯专利的音频和视频播放软件。这里不包括 DVD 播放软件——开源的 libdvdcss DVD 播放库存在严重的法律问题。

Ubuntu 不会在主发行版发布的同时发布这些包,但是我们却可以从这里提供的内容获得便利。在其他 Linux 发行版中,这里的内容通常可以在第三方存储库中找到,比如 Fedora 的 RPM Fusion、openSUSE 的 Packman 等。
和 universe 库一样,Multiverse 也是一个由社区支持的库,因此这里不会保证有安全更新。

Download Server

Ubuntu 官方提供了上述库的下载服务器,但是对于全球的使用者来说使用默认的服务器并不一定是最好的选择。我们可以指定一个地理位置上比较近或者是认为下载速度比较快的服务器:

总结这样下载更新文件的速度可能会有比较大的提升。

配置文件

我们在 GUI 工具中配置的 Download Server 信息都保存在配置文件 /etc/apt/sources.list 和 /etc/apt/sources.list.d 目录下的文件中。/etc/apt/sources.list 中一般保存 Ubuntu 库的配置信息,比如:

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

这行信息指明 Ubuntu bionic(18.04) 版本的 main 库和 restricted 库的服务器地址为  http://cn.archive.ubuntu.com/ubuntu/。
如果要添加第三方软件库的信息,可以在 /etc/apt/sources.list.d 目录下创建 .list 文件,把源信息写入到文件中就可以了。

或者我们不使用 GUI 工具,直接编辑配置文件 /etc/apt/sources.list,把其中指定的默认的库的 Download Server 修改为指定的服务器。修改后运行下面的命令,然后就可以使用新指定的服务器安装包了:

$ sudo apt-get update

Other Softwares

还有一些软件提供了自己的库和下载服务器,它们被显示为 "Other Software",比如下图中显示的 docker 和 vscode:

在我们安装这些软件前,需要先添加其下载服务器已经库信息:

当然,你也可以通过编辑配置文件或者是通过命令完成同样的任务。

参考:
What's the Difference Between Main, Restricted, Universe, and Multiverse on Ubuntu?

Ubuntu: 软件库(software repositories)的更多相关文章

  1. make deb for debian/ubuntu, package software for debian/ubuntu

    here you may find useful information: =====================X8---------------------------------8X==== ...

  2. Ubuntu's Software

    (1)indicator-sysmonitor & acpi (2)nvidia-prime (3)sogou (4)wps (5)ubuntu-tweak

  3. ubuntu 下配置Python wxWidgets (复制自官方网站)

    全系统英文官网操作地址:http://wxpython.org/download.php Ubuntu 英文操作地址:http://wiki.wxpython.org/InstallingOnUbun ...

  4. ubuntu 快捷键和安装知识知识

    本文节选自“The Official Ubuntu Book, 7th Edition.pdf” 快捷键部分直接引用原书中图片. Linux Folders Learning Unity Keyboa ...

  5. How To Install Apache Kafka on Ubuntu 14.04

    打算学习kafka ,接触一些新的知识.加油!!! 参考:https://www.digitalocean.com/community/tutorials/how-to-install-apache- ...

  6. ubuntu 14.04 (desktop amd 64) 安装和配置ROS Indigo

    安装ROS 配置Ubuntu的软件源 配置Ubuntu要求允许接受restricted.universe和multiverse的软件源,可以根据下面的链接配置: https://help.ubuntu ...

  7. [django] Deploy Django Applications Using uWSGI and Nginx on Ubuntu 14.04

    关键点1:chmod-socket=666 (mysite_uwsgi.ini) 关键点2 : 工程目录和虚拟环境目录搞清楚 几个参考: http://uwsgi-docs.readthedocs.i ...

  8. 安装Ubuntu 13.04后要做的六件事

    2013-05-07 09:23    最新版本的Ubuntu已经新鲜出炉:Ubuntu 13.04,代号为Raring Ringtail.作为幕后开发Ubuntu Linux的公司,Canonica ...

  9. ubuntu包管理机制

    1 ubuntu包管理机制 跟大家分享一下ubuntu的软件管理机制.如果你们有过: apt-get install 或者 apt-get update 失败的经历. 在众多的apt命令中迷失. 疑惑 ...

随机推荐

  1. TypeScript的概要和简介

    安装 Typescript的基本介绍可以自行百度 centos虚拟机中可以完整的体验, virtualbox安装开发版本,选择开发工具项,否则增强功能无法安装[提示kernel 头文件缺失,yum安装 ...

  2. [20181220]使用提示OR_EXPAND优化.txt

    [20181220]使用提示OR_EXPAND优化.txt --//链接http://www.itpub.net/thread-2107240-2-1.html,http://www.itpub.ne ...

  3. mssql sql server上如何建一个只读视图–视图锁定的另类解决方案

    转自:http://www.maomao365.com/?p=4508 <span style="color:red;font-weight:bold;">我们熟知一个 ...

  4. Nginx 出现 403 Forbidden 最终解决

    Nginx 出现 403 Forbidden 最终解决 步骤一: 检查目录权限.权限不足的就加个权限吧. 例子:chmod -R 755 / var/www 步骤二: 打开nginx.conf 例子: ...

  5. win7 中 sql server2005 卸载简介

    注:卸载前一定要做好备份,一定要清理干净,不然重装会出错(只针对完全卸载,没试过只删除一个版本的) 工具:①Windows Install Clean Up  ②SrvInstw.exe 1.停止所有 ...

  6. 多个iframe中根据src获取特定iframe并执行操作

    多个iframe中根据src获取特定iframe并执行操作 前言:在项目中做一个批量编辑工单时需要在一大堆的iframe中的某一个iframe里边再用模态框的形式显示编辑区域,然后再在模态框里边加入i ...

  7. 基于SurfaceView的可拖动视频控件

    视频播放控件(一) 可拖动,变换SurfaceView public class DragSurfaceView extends SurfaceView implements View.OnTouch ...

  8. 关于Numba开源库(Python语法代码加速处理,看过一个例子,速度可提高6倍)

    关于Numba你可能不了解的七个方面 https://yq.aliyun.com/articles/222523 Python GPU加速 (很详细,有代码练习)https://blog.csdn.n ...

  9. 老生常谈:Windows的7类安全漏洞

    这是篇比较老的文章,但是现在翻出来发下,还是会让大家对Windows的安全漏洞有所了解.建议大家阅读<软媒原创:如何从根上保证电脑安全.不中毒>. 目前微软系列产品中,危害计算机安全的漏洞 ...

  10. Ubuntu18.04多个版本GCC编译器的切换

    今天make一个程序的时候,发现程序里面使用到了C++17的标准,而我的gcc仍然是4.8,考虑到系统是ubuntu18.04的,所以感觉应该gcc的版本不会这么低. cd到/usr/bin下,使用指 ...