Come aggiungere repository dalla shell in Debian?


141

In Ubuntu è possibile aggiungere un repository tramite il seguente comando -

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

Dato che Ubuntu è basato sulla base di codici Debian, mi aspettavo che lo stesso avrebbe funzionato anche in Debian, ma non è così.

  • Qual è la ragione di ciò?
  • C'è qualche altro comando shell che posso usare per ottenere lo stesso?

Nota: so di poterlo modificare /etc/apt/sources.list, ma voglio ottenerlo dalla shell. Voglio anche sapere perché lo stesso comando non funziona quando la base di codice è la stessa.

Risposte:


182

Debian Jessie e successive (2014-)

Come sottolineato da @voltagex nei commenti, ora può essere trovato nel software-properties-commonpacchetto:

sudo apt-get install software-properties-common

Debian Wheezy e precedenti:

Il programma add-apt-repository è disponibile in Debian. È nel python-software-propertiespacchetto:

sudo apt-get install python-software-properties

È stato aggiunto a quel pacchetto nella versione 0.75. La versione corrente in Debian Stable ('squeeze ") è 0.60, quindi non ce l'ha. La versione attualmente in Debian Testing (" wheezy ") è 0.82.7.1debian1, quindi è disponibile lì.


9
Almeno in sid, lo script add-apt-repository sembra essere passato a software-properties-common
Adam Baxter,

Versione 0.92 di python-software-properties qui, e (di nuovo) mancante :-(
gatopeich

3
Vedi il commento sopra il tuo - è ora insoftware-properties-common
Jim Paris

tuttavia ha avuto problemi di aggiornamento
peterretief

17

Supponendo che tu stia eseguendo una versione non antica di Debian (Etch o successiva), puoi semplicemente rilasciare un file in /etc/apt/sources.list.d/Il nome del file deve terminare con .list; Debian Stretch (non ancora rilasciato) probabilmente aggiungerà .sourcescon un formato diverso.

Il formato è lo stesso del file sources.list principale.

Il vantaggio è, soprattutto se questo è per alcuni software che stai distribuendo, non devi preoccuparti di unire le tue modifiche in un file /etc/apt/sources.list eventualmente modificato (specialmente difficile da gestire se il tuo programma è disinstallato). È possibile utilizzare il dpkgsupporto conffile per inserire il file /etc/apt/sources.list.d/.


sources.list.desiste sin dall'incisione, credo.
Gilles,

1
Sì, ma apt-add-repositorysi occupa di cose come tradurre "ppa:" in un http://ppa.launchpad...tipo e di scaricare e installare la chiave del repository in modo che i pacchetti non siano considerati sospetti
Ricardo Cárdenes,

@Gilles Penso che tu abbia ragione: non è su una macchina Sarge che ho, ed è su una macchina Etch.
derobert l'

13

add-apt-repositoryora può essere trovato nel software-properties-commonpacchetto.


@rbaleksandar questo non è in tutte le distribuzioni perché ha molte cose extra che potresti non desiderare, specialmente nella finestra mobile. Poiché l'obiettivo finale di questa attività è aggiungere qualcosa /etc/apt/sources.list, potresti guardare la risposta di @Goez in questa domanda.
Mike D,

8

Ubuntu è basato su Debian ma include cose che Debian non ha (e a sua volta sono spesso incorporate in Debian in seguito). Il add-apt-repositorycomando è un esempio che è stato incluso prima in Ubuntu.

In add-apt-repositoryrealtà esegue solo un paio di comandi per aggiungere il repository:

  • aggiungere il repository a /etc/apt/sources.list
  • aggiungere la chiave del repository alla macchina.

Uno script che fa lo stesso che si può trovare qui è citato di seguito

#!/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

Non è raccomandato l'uso del repository ppa nella distro Debian. Non c'è controllo sulle installazioni che lo fanno.
Francis Rodrigues,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.