在 Ubuntu 中,可以通过以下命令添加存储库 -
sudo add-apt-repository ppa:yannubuntu/boot-repair
由于 Ubuntu 基于 Debian 代码库,我原以为同样的功能也能在 Debian 中运行,但事实并非如此。
- 这是什么原因呢?
- 我可以使用其他一些 shell 命令来实现相同的目的吗?
注意:我知道我可以编辑/etc/apt/sources.list
,但我想从 shell 中实现这一点。我还想知道为什么当代码库相同时相同的命令不起作用。
答案1
Debian Jessie 及更高版本 (2014-)
正如 @Voltagex 在评论中指出的那样,现在可以在software-properties-common
包中找到它:
sudo apt-get install software-properties-common
Debian Wheezy 及更早版本:
该程序add-apt-repository
是在 Debian 中可用。它在python-software-properties
包装中:
sudo apt-get install python-software-properties
它在 0.75 版本中被添加到该包中。 Debian Stable(“squeeze”)中的当前版本是 0.60,因此它没有。Debian Test(“wheezy”)中当前的版本是 0.82.7.1debian1,因此可以在那里使用。
答案2
假设您正在运行非旧版本的 Debian(Etch 或更高版本),您只需将一个文件拖入/etc/apt/sources.list.d/
其中 文件名必须以.list
;结尾Debian Stretch(尚未发布)可能会添加.sources
不同的格式。
格式与主sources.list 文件相同。
优点是,特别是如果这是针对您正在分发的某些软件,您不必担心将更改合并到可能编辑的 /etc/apt/sources.list 文件中(如果您的程序是已卸载)。您可以使用dpkg
conffile支持将文件放入/etc/apt/sources.list.d/
.
答案3
add-apt-repository
现在可以在包中找到software-properties-common
。
答案4
Ubuntu 基于 Debian,但包含了 Debian 没有的东西(并且后来通常被合并到 Debian 中)。该add-apt-repository
命令是首先包含在 Ubuntu 中的一个示例。
实际上add-apt-repository
只执行几个命令来添加存储库:
- 将存储库附加到
/etc/apt/sources.list
- 将存储库密钥添加到计算机。
可以找到一个具有相同功能的脚本这里下面引用
#!/bin/bash
if [ $# -eq 1 ]
NM=$(uname -a && date)
NAME=$(echo $NM | md5sum | cut -f1 -d" ")
then
ppa_name=$(echo "$1" | cut -d":" -f2 -s)
if [ -z "$ppa_name" ]
then
echo "PPA name not found"
echo "Utility to add PPA repositories in your debian machine"
echo "$0 ppa:user/ppa-name"
else
echo "$ppa_name"
echo "deb http://ppa.launchpad.net/$ppa_name/ubuntu lucid main" >> /etc/apt/sources.list
apt-get update >> /dev/null 2> /tmp/${NAME}_apt_add_key.txt
key=$(cat /tmp/${NAME}_apt_add_key.txt | cut -d":" -f6 | cut -d" " -f3)
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
rm -rf /tmp/${NAME}_apt_add_key.txt
fi
else
echo "Utility to add PPA repositories in your debian machine"
echo "$0 ppa:user/ppa-name"
fi