有人可以解释一下这些有什么用吗?
sudo apt-get updatesudo apt-get upgradeapt-add-repository使用这些的组合是什么?
Anw*_*war 10
让我们对如何在 Ubuntu 和一般 Linux 发行版中维护存储库有一些基本的了解。Ubuntu 和 Linux 发行版使用存储库来提供软件,这些软件通过安装一个或多个软件包来安装。
软件:我们会说,软件是满足需求或目标的一个程序或一组程序。如“Cheese”是一款软件,用于拍照、录像等。
包:包是软件的最小单位,由 Ubuntu 发行版发布。一个包可以是一个完整的软件,也可以是一个软件的一部分。一个软件由零个或多个包组成。
包列表: Ubuntu 或一般的 Linux 发行版使用包列表,其中包含有关可用包的信息。这些列表的在线存储,这被检索的包管理软件,例如apt-get,aptitude,synaptic在您的计算机或Ubuntu软件中心。将这些列表下载到您的计算机中后,包管理软件(例如 apt-get)就知道存储库中在线提供了哪些包。
存储库:存储库是在线存储的名称,包含包、包列表和包验证信息。这些有时也称为包源。
sources.list:此文件存储有关启用的存储库的信息。它位于/etc/aptUbuntu 系统的目录中。您可以通过转到/etc/apt文件夹并双击该sources.list文件来查看该文件的内容。另请注意,一些存储库行也存储在/etc/apt/sources.list.d目录中的文件中。该目录中包含存储库行的文件需要具有扩展名.list. apt-get和其他包管理软件也识别该目录中的存储库行。
Repository-line: Repository-line 是指sources.list文件中每个(非注释)行的格式。也称为source line或repo line。
源包:不要与包源混淆,包源是指包含包的存储库。源包是包含源代码的包,这些源代码可以编译成实际的二进制程序,然后可以执行并运行。
存储库源代码行的正确格式是
<type of repository> <location i.e URI> <dist-name> <components>
Run Code Online (Sandbox Code Playgroud)
例如,回购线可以是这样的
deb http://archive.ubuntu.com/ubuntu precise main
Run Code Online (Sandbox Code Playgroud)
在这里,这意味着,存储库用于二进制包,它们托管在http://archive.ubuntu.com/ubuntu 中,此存储库适用于 Ubuntu 精确 (12.04),此存储库包含主要(由官方支持的软件)规范)组件。
type: deb是仓库的类型,表示它是一个二进制仓库,不是源仓库,它有 type deb-scr。二进制存储库包含已编译的包,而不是包含源包的源存储库。
位置: http://archive.ubuntu.com/ubuntu存储库的位置。
Dist-name: precise是 Ubuntu 发行版的发行版名称。对于 Ubuntu 12.04,它是precise,11.10 是oneiric。
组件: main表示存储库的组件。Ubuntu 存储库分为四个部分。
有关更多信息,请参阅此页面。
sudo apt-get update
此命令检查您的系统是否具有最新的软件包列表,如果没有,则检索存储在在线存储库中的软件包列表文件。例如,如果您的sources.list文件包含这样的行deb http://archive.ubuntu.com/ubuntu precise main,它会检查您的系统是否有主要组件的包列表(二进制包)。如果它发现您没有该列表或您的列表已过时,它将从存储库中获取该列表。
如果您真的有兴趣查看存储在您的 Ubuntu 系统中的软件包列表,请转到/var/lib/apt/lists目录查看它们。获取后,包列表存储在那里。
注意:可以有很多方法来获取这些列表,这超出了本答案的范围。
sudo apt-get upgrade
此命令下载并安装包的更新版本。如果您已经安装了软件包,则此命令不会下载和安装软件包。此外,它不会删除任何包。因此,如果升级包X需要删除包Y,则此命令根本不会升级包X。
apt-add-repository
此命令用于在您的系统中添加存储库。添加存储库意味着添加从某个在线源安装包的能力,而不是从那里安装所有包。
此命令需要存储库源代码行或 PPA 链接。
要添加常规存储库:使用 sudo apt-add-repository <repo-line>
如 sudo apt-add-repository deb http://archive.ubuntu.com/ubuntu precise universe
添加 PPA 资源库:使用 sudo apt-add-repository PPA-Name
如 sudo apt-add-repository ppa:gwibber-daily/ppa
注意 1:请记住,您可以同时使用两者apt-add-repository或add-apt-repository命令。
注 2:使用此命令添加 PPA 实际上会检查Launchpad.net站点是否存在该 PPA,并在/etc/apt/sources.list.d包含存储库行标准格式的 PPA 名称的目录中创建一个文件。
来自维基百科:
Launchpad 是一个 Web 应用程序和网站,允许用户开发和维护软件,尤其是免费软件。Launchpad 由 Canonical Ltd 开发和维护。
它是同一个 Canonical Ltd,它是 Ubuntu 的官方赞助商。
关于 PPA 存储库的注意事项:您可能已经注意到,如果添加 PPA,则存储库源代码行不会复制到/etc/apt/sources.list文件中。那么,他们去哪里呢?
这些行转到/etc/apt/sources.list.d目录中的文件,文件以这种格式保存:<PPA-name>-<dist-name>.list. (对于某些 PPA,文件名格式可能并不总是遵循该目录中的上述规则)
例如,如果您使用PPA:gwibber-daily/ppa,将创建一个文件,其名称gwibber-daily-ppa-precise.list将包含标准格式的存储库行。我的 Ubuntu 中文件的内容是——
deb http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu precise main
deb-src http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu precise main
Run Code Online (Sandbox Code Playgroud)
您已经注意到,该命令以标准格式添加了一个 repo 行。此外,它还自动启用了源包的存储库。(注意以deb-src指示源包存储库开头的行)
这些从 PPA 名称到存储库行的转换是由apt-add-repository并不足为奇的,因为 Launchpad.net 归 Canonical Ltd 所有,Canonical Ltd 也是 Ubuntu 的赞助商。
一点背景
对于更新和安装类似 Ubuntu 的系统,使用称为软件源或存储库的概念。
存储库是库的集合,可执行。
存储库中的库和软件使用列表文件进行维护。所以当有人更新 server 中的列表文件时,用户将下载最新的列表文件。此列表文件指示哪些文件已更新,哪些未更新。使用它您只能下载更新的组件。无需获取整个软件。
除了 Ubuntu 官方 repo,还有许多 3rd 方开发人员分发那里的应用程序。Ubuntu 为他们提供了一种在 Ubuntu 中分发的简单方法。那就是所谓的PPA。
APPA也是一个 repo,但由开发人员维护。Ubuntu 不承担任何责任。
你的问题回答
apt-add-repository your-repository-here 是添加 PPA 作为您计算机的软件源。
apt-get-update是从所有添加的 repo 中获取最新的源文件列表(不是软件,它只下载索引)。就像您在第一步中添加了一些 repo 一样。在您执行这些软件之前,它们将不可用。
sudo apt-get upgrade是更新已安装软件的所有可用更新。它使用下载的最新列表文件作为参考来确定需要安装哪些组件。
这是低谷:
要将当前的软件包列表与存储库中的软件包列表进行比较,您可以运行
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
要升级所有已安装的软件包,您将运行
sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
要将存储库添加到您的系统(存储库是包含软件包集的服务器),您可以使用
sudo apt-add-repository ppa:<repository-name>
Run Code Online (Sandbox Code Playgroud)
你可以做
sudo apt-get update && sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
有关 apt-get 命令的完整信息,请参阅AptGet/Howto
| 归档时间: |
|
| 查看次数: |
550 次 |
| 最近记录: |