Debianのシェルからリポジトリを追加する方法は?


141

Ubuntuでは、次のコマンドを使用してリポジトリを追加できます-

sudo add-apt-repository ppa:yannubuntu/boot-repair

UbuntuはDebianのコードベースに基づいているため、Debianでも同じことが機能すると期待していましたが、機能しません。

  • この理由は何ですか?
  • 同じことを達成するために使用できる他のシェルコマンドはありますか?

注:を編集できることは知っていますが/etc/apt/sources.list、これをシェルから実現したいと思います。また、コードベースが同じ場合に同じコマンドが機能しない理由も知りたいです。

回答:


182

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安定版( 'squeeze ")の現在のバージョンは0.60なので、それはありません。現在Debianテスト(" wheezy ")にあるバージョンは0.82.7.1debian1なので、そこから入手できます。


9
sidの少なくとも、アドオンのapt-リポジトリスクリプトは、一般的なソフトウェア・プロパティに移動しているようだ
アダム・バクスター

ここにpython-software-propertiesのバージョン0.92があり、(再び)欠落している:-(
gatopeich 14年

3
あなたの上記のコメントを参照してください-それは、今だsoftware-properties-common
ジム・パリ

しかし、面倒な更新があった
peterretief

17

あなたは(後にエッチングや)のDebianの非古代のバージョンを実行していると仮定すると、あなただけでファイルをドロップすることができます/etc/apt/sources.list.d/で終了する必要があり、ファイル名を.list。Debian Stretch(まだリリースされていない)はおそらく.sources異なるフォーマットで追加されるでしょう。

形式は、メインのsources.listファイルと同じです。

利点は、特にこれがあなたが配布しているいくつかのソフトウェアの場合、おそらく編集された/etc/apt/sources.listファイルに変更をマージすることを心配する必要がないことです(あなたのプログラムがアンインストール済み)。dpkgconffileサポートを使用して、ファイルをに入れることができます/etc/apt/sources.list.d/


sources.list.dエッチ以来存在していると思います。
ジル

1
うん、でもapt-add-repository「PPA:」を翻訳するようなものの世話をするhttp://ppa.launchpad...パッケージが疑わしいとして扱われないように、リポジトリのキーをダウンロードし、インストールするタイプ、および
リカルドCárdenes

@Gilles私はあなたが正しいと思います。それは私が持っているSargeマシンではなく、Etchマシンです。
デロバート

13

add-apt-repositorysoftware-properties-commonパッケージに含まれるようになりました。


@rbaleksandarこれはすべてのディストリビューションにあるわけではありません。特にdockerでは、不要なものがたくさんあるためです。このタスクの最終目標はに何かを追加することなので/etc/apt/sources.list、この質問で@Goezの答えを見ることができます。
マイクD

8

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

Debianディストリビューションでppa repoを使用することはお勧めしません。それを行うインストールについては制御できません。
フランシスロドリゲス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.