Ubuntuでは、次のコマンドでリポジトリを追加できます-
Sudo add-apt-repository ppa:yannubuntu/boot-repair
UbuntuはDebianコードベースに基づいているので、同じことがDebianでも機能すると期待していましたが、機能しません。
注:編集できることはわかっています/etc/apt/sources.list
、しかし私はシェルからこれを達成したいです。また、コードベースが同じであるときに同じコマンドが機能しない理由も知りたいです。
コメントの@voltagexで指摘されているように、software-properties-common
パッケージ:
Sudo apt-get install software-properties-common
プログラム add-apt-repository
is Debianで利用できます。 python-software-properties
パッケージ:
Sudo apt-get install python-software-properties
バージョン0.75でそのパッケージに追加されました。 Debian Stable( 'squeeze ")の現在のバージョンは0.60なので、それはありません現在Debian Testingにあるバージョン(" wheezy ")は0.82.7.1debian1なので、そこで利用できます。
Debianの非古代バージョン(Etch以降)を実行している場合、/etc/apt/sources.list.d/
にファイルをドロップするだけでファイル名を.list
で終了する必要があります。 Debian Stretch(まだリリースされていません)は、異なる形式で.sources
を追加する可能性があります。
形式はメインのsources.listファイルと同じです。
利点は、特にこれが配布している一部のソフトウェアの場合、変更をおそらく編集された/etc/apt/sources.listファイルにマージすることを心配する必要がないことです(特に、プログラムがアンインストール)。 dpkg
conffileサポートを使用して、ファイルを/etc/apt/sources.list.d/
に配置できます。
add-apt-repository
がsoftware-properties-common
パッケージ。
UbuntuはDebianをベースにしていますが、Debianがサポートしていないものも含まれています(そして、多くの場合、後でDebianに組み込まれます)。 add-apt-repository
コマンドは、Ubuntuに最初に組み込まれた例です。
add-apt-repository
は実際には、リポジトリを追加するためのいくつかのコマンドを実行します。
/etc/apt/sources.list
に追加します見つけることができるのと同じことを行うスクリプト here は以下に引用されています
#!/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