Як додати сховище з оболонки в Debian?


141

В Ubuntu можна додати сховище за допомогою наступної команди -

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

Оскільки Ubuntu базується на базі кодів Debian, я очікував, що те саме буде працювати і в Debian, але це не так.

  • У чому причина цього?
  • Чи є якась інша команда оболонки, яку я можу використовувати, щоб досягти того ж?

Примітка. Я знаю, що можу редагувати /etc/apt/sources.list, але хочу досягти цього з оболонки. Я також хочу знати, чому одна і та ж команда не буде працювати, коли база коду однакова.

Відповіді:


182

Дебіан Джессі та пізніші (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 ('стискати') становить 0,60, тому її немає. Версія, яка зараз знаходиться в Debian Testing ("wheezy"), становить 0,82,7,1debian1, тому вона доступна там.


9
Принаймні, в sid, сценарій add-apt-repository, схоже, перемістився до спільних програм-властивостей
Адама Бакстера

Тут відсутня версія (0,92) властивостей python-software і (знову ж таки) відсутня :-(
gatopeich

3
Подивіться коментар вище вашого - зараз цеsoftware-properties-common
Джим Париж

Хоча було
клопотання

17

Якщо припустити, що ви використовуєте недавню версію Debian (Etch або новішої версії), ви можете просто випустити файл у /etc/apt/sources.list.d/назві файлу .list. Debian Stretch (ще не випущений), ймовірно, додасться .sourcesв іншому форматі.

Формат такий самий, як і основний файл source.list.

Перевага полягає в тому, що якщо це стосується певного програмного забезпечення, яке ви розповсюджуєте, вам не доведеться турбуватися про об'єднання змін у файл, який може бути відредагований /etc/apt/sources.list (особливо важко впоратися, якщо ваша програма є видалено). Ви можете використовувати dpkgпідтримку conffile, щоб розмістити файл /etc/apt/sources.list.d/.


sources.list.dя думаю, існує з травлення.
Жиль

1
Так, але apt-add-repositoryпіклується про такі речі, як переклад "ppa:" на http://ppa.launchpad...тип, а також завантажувати та встановлювати ключ сховища, щоб пакети не трактувались як підозрілі
Рікардо Карденес,

@Gilles Я думаю, ти маєш рацію - це не на машині Sarge у мене, а на машині Etch.
дероберт

13

add-apt-repositoryтепер можна знайти в software-properties-commonупаковці.


@rbaleksandar це не у всіх дистрибутивах, тому що в ньому є багато зайвих речей, які ви, можливо, не захочете, особливо в докер. Оскільки кінцевою метою цього завдання є щось додати /etc/apt/sources.list, ви можете переглянути відповідь @Goez в цьому запитанні.
Майк Д

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

Не рекомендується використовувати ppa repo у вашому дистрибутиві Debian. Немає контролю над тим, щоб це зробити.
Френсіс Родрігес
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.