我正在尝试下载某些软件包(例如 rhythmbox)的源代码,用于学习目的。我想通过apt-get
,使用apt-get source
命令来完成此操作。
由于某种原因,apt-get
似乎找不到任何包。我尝试了几个包,但总是从 apt-get 得到这样的输出:
$ apt-get source rhythmbox
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to find a source package for rhythmbox
我已经搜索答案很长时间了,但找不到遇到同样问题的人。apt-get
安装和更新都运行良好,所以apt-get
我认为运行良好。在搜索过程中,我还了解到我必须在软件源中启用“源代码存储库”,因此也启用了该存储库。
我知道(可能只针对某些包,不确定)源包也可以从bzr
Launchpad 下载,但我想知道为什么这种方法不起作用。
答案1
打开软件中心并选择编辑 -> 软件源。您使用哪个服务器?我使用的是“服务器和美国”,刚刚下载了 rhythmbox 的源代码。我使用的是 Precise。
答案2
apt-get source rhythmbox
仅当您打开了源存储库、更新了软件包列表并且您的源中确实有该存储库时才有效。
例如,如果您安装了普通的 Ubuntu 安装并且没有添加任何 apt 存储库。那么您所需要做的就是确保“源代码”已选中。如果您添加了额外的存储库,则需要为每个存储库设置两个条目。一个用于“main”(通常),一个用于“source”。
如果您还没有,请apt-get update
再次运行以获取所有新的存储库。
现在 apt-get source 会为您安装的确切软件包安装源。这意味着如果您从 some-odd-ppa(主)安装了 deb,则源需要位于 some-odd-ppa(源)中。从 some-odd-ppa 安装的软件包不会从其他存储库中提取源,因为它们不是同一版本。
我已经检查过,rhythmbox 可通过源存储库获得。您只是没有在 apt 存储库中包含正确的源存储库,或者您尚未运行 apt-get update。