Bagaimana cara menambah repositori dari shell di Debian?

141

Di Ubuntu kita dapat menambahkan repositori melalui perintah berikut -

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

Karena Ubuntu didasarkan pada basis kode Debian, saya berharap hal yang sama akan bekerja di Debian juga, tetapi tidak.

  • Apa alasannya?
  • Apakah ada perintah shell lain yang bisa saya gunakan untuk mencapai hal yang sama?

Catatan: Saya tahu saya bisa mengedit /etc/apt/sources.list, tetapi saya ingin mencapai ini dari shell. Saya juga ingin tahu mengapa perintah yang sama tidak berfungsi ketika basis kode sama.

Kshitiz Sharma
sumber

Jawaban:

182

Debian Jessie dan yang lebih baru (2014-)

Seperti yang ditunjukkan oleh @voltagex di komentar, sekarang dapat ditemukan dalam software-properties-commonpaket:

sudo apt-get install software-properties-common

Debian Wheezy dan sebelumnya:

Program add-apt-repository ini tersedia dalam bahasa Debian. Ada dalam python-software-propertiespaket:

sudo apt-get install python-software-properties

Itu ditambahkan ke paket itu di versi 0.75. Versi saat ini di Debian Stable ('squeeze ") adalah 0,60, jadi tidak memilikinya. Versi saat ini dalam Pengujian Debian (" wheezy ") adalah 0,82.7.1debian1, sehingga tersedia di sana.

Jim Paris
sumber
9
Setidaknya di sid, script add-apt-repository tampaknya telah pindah ke software-properties-common
Adam Baxter
Versi 0.92 dari python-software-properties di sini, dan (lagi) hilang :-(
gatopeich
3
Lihat komentar di atas milik Anda - sekarang disoftware-properties-common
Jim Paris
telah kerepotan memperbarui
peterretief
17

Dengan asumsi Anda menjalankan versi Debian yang tidak kuno (Etch atau yang lebih baru), Anda cukup meletakkan file di /etc/apt/sources.list.d/Nama file harus diakhiri dengan .list; Peregangan Debian (belum dirilis) kemungkinan akan menambah .sourcesdengan format yang berbeda.

Formatnya sama dengan file sources.list utama.

Keuntungannya adalah, terutama jika ini untuk beberapa perangkat lunak yang Anda distribusikan, Anda tidak perlu khawatir menggabungkan perubahan Anda ke file /etc/apt/sources.list yang mungkin diedit (terutama sulit untuk ditangani jika program Anda tidak terinstal). Anda dapat menggunakan dpkgdukungan conffile untuk memasukkan file /etc/apt/sources.list.d/.

derobert
sumber
sources.list.dada sejak etsa, saya pikir.
Gilles
1
Ya, tapi apt-add-repositoryurus hal-hal seperti menerjemahkan "ppa:" ke suatu http://ppa.launchpad...jenis, dan untuk mengunduh dan menginstal kunci repositori sehingga paket tidak diperlakukan sebagai mencurigakan
Ricardo Cárdenes
@Gilles Saya pikir Anda benar — itu bukan pada mesin Sarge yang saya miliki, dan pada mesin Etch.
derobert
13

add-apt-repositorysekarang dapat ditemukan dalam software-properties-commonpaket.

Richard Ayotte
sumber
@rbaleksandar ini tidak ada di semua distro karena memiliki banyak hal tambahan yang mungkin tidak Anda inginkan, terutama di buruh pelabuhan. Karena tujuan akhir dari tugas ini adalah menambahkan sesuatu /etc/apt/sources.list, Anda mungkin melihat jawaban @ Goez dalam pertanyaan ini.
Mike D
8

Ubuntu didasarkan pada Debian tetapi mencakup hal-hal yang tidak dimiliki Debian (dan pada gilirannya sering dimasukkan ke dalam Debian nanti). The add-apt-repositoryperintah adalah contoh yang termasuk dalam Ubuntu pertama.

The add-apt-repositorysebenarnya hanya mengeksekusi beberapa perintah untuk menambahkan repositori:

  • tambahkan repositori ke /etc/apt/sources.list
  • tambahkan kunci repositori ke mesin.

Sebuah skrip yang melakukan hal yang sama yang dapat ditemukan di sini dikutip di bawah ini

#!/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
Goez
sumber
Tidak disarankan menggunakan repo ppa di distro Debian Anda. Tidak ada kontrol tentang instalasi yang membuatnya.
Francis Rodrigues