add-apt-repository
命令。如何在不使用此命令的情况下向服务器添加个人软件包归档(PPA)?#1 楼
您可以简单地添加add-apt-repository
命令。在13.10及更高版本中,您还需要运行以下命令:sudo apt-get install software-properties-common
侧面说明:在11.04中,他们向
add-apt-repository
添加了符号链接,因此可以作为apt-add-repository
运行,对我来说更有意义。 apt的所有其他内容均以“ apt”开头。注意:它是
python-software-properties
软件包的一部分(在13.10之前):sudo apt-get install python-software-properties
评论
看到它实际上是apt的功能,对我来说实际上是合乎逻辑的。 “使用apt添加存储库”>“ apt-add-repository”
–MrChrisDruif
2012年3月27日15:32
如果已经安装了“ python-software-properties”,并且在尝试使用“ apt-add-repository”时仍然出现“找不到命令”怎么办?
– monkut
2012年7月23日在1:08
您是否也尝试过“ add-apt-repository”?在11.04之前的版本中,必须在“ apt”之前放置“ add”。
–马克·罗素
2012年7月26日在21:24
当“ apt-get install python-software-properties”由于依赖于python-curl(无法安装)而失败时,您应该怎么办?在我的12.04系统上,它抱怨说“无法纠正问题-您拿着破损的包裹”
– Hoobajoob
15年1月16日在22:15
软件属性是一组定义好的工具还是公用程序的集合?
– Alex
2015年5月21日在8:20
#2 楼
让我教你如何钓鱼。apt-file
使您能够找出哪个软件包提供了给定的文件。 dpkg -S
做同样的事情,但仅适用于已安装的软件包。 apt-file
可以正常工作,无论是否已安装软件包。 因此,首先安装apt-file:
sudo apt-get install apt-file
。然后,您需要更新其信息,就像必须使用apt-get:sudo apt-file update
一样。现在可以使用了:$ apt-file search add-apt-repository
python-software-properties: /usr/bin/add-apt-repository
python-software-properties: /usr/share/man/man1/add-apt-repository.1.gz
因此,在这种情况下,下一步是安装python-software-properties。
评论
一个很好的技巧-也许不应该将其埋在这个问题中-单独提出一个问题来突出这一点将是一个好主意。
–fossfreedom♦
2011年8月2日,11:47
@fossfreedom这是您在说的吗? -askubuntu.com/questions/13792/…
– jrg
2011年8月2日,12:46
由于此技巧,我发现在12.10服务器中,apt-add-repository位于software-properties-common中(不再位于python-software-properties中)
–凯特阿姆斯特丹
13年10月10日在22:08
为什么我忘了这个非常有用的命令存在!好答案。
–lle
17 Mar 7 '17 at 10:38
#3 楼
它不一定是最好的答案,但这将起作用:编辑/etc/apt/sources.list
的老式方法(在Ubuntu 9.10之前的版本,他们称之为)仍然有效。您还需要手动在系统上获取GPG密钥。在较旧(9.10之前)的Ubuntu系统上:
步骤1:在启动板中访问PPA的概述页面。查找标题为“将此PPA添加到您的系统中”的标题,然后单击有关此PPA链接的“技术详细信息”。
步骤2:使用“显示sources.list条目”下拉框选择Ubuntu版本您正在使用。
步骤3:您将看到下面的文本框显示如下内容:
deb http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu jaunty main
复制这些行。
步骤4:打开终端并键入:
sudo gedit /etc/apt/sources.list
这将打开一个文本编辑器,其中包含您要保存的档案列表。系统当前正在使用。滚动到文件底部,然后粘贴您在上一步中复制的行。
保存文件并退出文本编辑器。
步骤5:回到PPA概述页面上,查找“签名”密钥标题。您会看到类似以下内容的内容:
1024R / 72D340A3(这是什么?)
在斜杠后复制部分,但不包括帮助链接;例如只需72D340A3。
步骤6:现在您需要将该密钥添加到系统中,以便Ubuntu可以从PPA验证软件包。在终端中输入:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 72D340A3
(用在步骤5中复制的内容替换72D340A3。)
现在将下拉菜单PPA的密钥并将其添加到您的系统中。
步骤7:现在,作为一项,您应该告诉您的系统从它知道的每个存档中提取最新的软件列表,包括您刚刚添加的PPA:
sudo apt-get update
现在您可以开始从PPA安装软件了!
评论
如果没有给出其他更快,更友好的答案,那么我将把它作为正确的答案。它以“特殊”方式解决了问题;)
–路易斯·阿尔瓦拉多(Luis Alvarado)
2011年4月29日15:10
尽管add-apt-repository更加容易,但是在服务器安装中,我希望保持精简,因此我不介意手动进行操作。这就是我一直在寻找的答案。
– D. Strout
13年4月14日在18:30
这种方法比安装apt-add-repository和必需软件包附带的所有废话更好。
–德米特里·明科夫斯基(Dmitry Minkovsky)
13-10-22在20:25
software-properties-common软件包非常庞大,对于仅将一些文本附加到文件并运行几个命令而言似乎太过庞大了。在Docker中使用时会浪费空间。这个答案非常有帮助!
–rsmoorthy
2015年9月11日下午6:56
这应该是一个可以接受的答案,因为OP询问如何不使用add-apt-repository来解决这个问题……非常感谢!
– djBo
16年5月21日在9:52
#4 楼
add-apt-repository
由软件包python-software-properties
提供。因此,如果您应该通过
sudo apt-get install python-software-properties
安装
评论
谢谢!我必须说我发现一个很不合逻辑的名字。另外,您知道为什么我没有标准安装吗?
– Peter Smit
2011年8月2日在10:41
达成共识是不合逻辑的-关于原因,您可以推测服务器通常在运行软件方面是“固定的”。因此,您不需要频繁添加和删除存储库的“奢侈”……投机活动!
–fossfreedom♦
2011年8月2日在10:46
为什么不合逻辑?这是一组处理软件属性的python工具。 add-apt-repository是这些工具之一。
– Jo-Erlend Schinstad
2011年8月2日,13:32
我已经安装了python-software-properties,但是我一直收到此错误。我尝试了apt-add和add-apt表示法,但没有用...该怎么办?
– Mohamad
13年5月15日在23:17
@Mohamad,因为这是错误的,至少对于Ubuntu 14.04来说是这样。您需要安装的只是software-properties-common。
–西奥多·史密斯(Theodore R. Smith)
2015年1月9日在22:21
#5 楼
运行以下命令:sudo apt-get install software-properties-common
然后您可以添加正在运行的存储库:
sudo add-apt-repository [REPOSITORY]
用Renember替换
[REPOSITORY]
带有要添加的存储库名称。评论
这工作得很好。
–亚伦
2015年1月22日,下午3:16
#6 楼
几周前,我与一位同事就此进行了辩论。试一试apt-add-repository
。不需要任何其他软件包。请注意,apt在添加之前出现。顺序确实很重要,因为需要安装add-apt-repository。
对于那些反对者来说。试试这个Vagrant文件。请注意,我是从一个全新的可信任映像开始,然后立即添加ppa。
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
config.ssh.username = "vagrant"
config.vm.provision "shell", inline: <<-SHELL
sudo apt-add-repository ppa:george-edison55/cmake-3.x -y
sudo apt update
sudo apt upgrade
sudo apt install -y virtualbox-guest-dkms
sudo apt-get install -y curl g++ libpng12-dev \
libtiff5-dev libssl-dev libxml2-dev libxslt1-dev libpq-dev postgresql-client \
postgresql pgadmin3 liblcms2-dev libcrypto++9 libcrypto++-dev \
graphviz-dev libboost1.55-dev libboost-filesystem1.55-dev libboost-system1.55-dev \
libexpat1-dev python-software-properties qtbase5-dev qttools5-dev \
libqt5svg5-dev qtscript5-dev qtdeclarative5-dev qtmultimedia5-dev \
libsqlite3-dev qt5-default cmake
SHELL
end
更新:澄清一下,它看起来像云用于ubuntu precision和up的映像已经安装了正确的软件包。因此,无论我们是在谈论云初始化脚本还是无业游民的文件,都存在apt-add-repository。由于add-apt-repository位于应该可以正常工作的同一程序包中。
评论
顺序无关紧要。参见askubuntu.com/questions/83489/…。
–edwinksl
16年8月19日在0:45
请解释一下为什么这个无业游民的文件为什么可以工作。请注意,我并不是说他们做的事情有所不同。他们做的完全一样。您只需要一个用于add-apt的软件包,其他软件包就可以从头开始工作。
– Atifm
16年8月19日在0:48
@atifm:请参见以下答案:$ apt-file搜索add-apt-repository软件属性-公共:/ usr / bin / add-apt-repository软件属性-公共:/ usr / share / man / man1 / add- apt-repository.1.gz $ apt-文件搜索apt-add-repository软件属性-公共:/ usr / bin / apt-add-repository软件-属性公共:/ usr / share / man / man1 / apt- add-repository.1.gz
– tricasse
16-10-25在22:53
@tricasse:感谢您对apt-file的链接,在其他地方会很有用。因此,您的权利与apt-file验证的文件位于同一软件包中。就是说,看起来像ubuntu云映像(对于无业游民),对于已经安装了该软件包的用户而言,精确可靠。不确定是否总是这样,但目前看来确实如此
– Atifm
16-10-26在10:40
评论
在最新版本的synaptic中,您可以直接在软件源中添加ppa而不是deb行-@Doug的答案对于Ubuntu 16.04是正确的-@fossfreedom的答案对于Ubuntu 14.04是正确的在Ubuntu 16.04上,正确的软件包确实是software-properties-common的,如以下所示:$ type add-apt-repository add-apt-repository被散列(/ usr / bin / add-apt-repository)$ apt-file搜索/ usr / bin / add-apt-repository software-properties-common:在以前的版本中可以找到/ usr / bin / add-apt-repository确实在python-software-properties上---更新:我在这里发表评论,因为我无法将其添加为评论!
apt-add-repository可以直接使用。