Come aggiungere un PPA su un server?


160

La versione server di Ubuntu non ha il add-apt-repositorycomando. Come posso aggiungere un Personal Package Archive (PPA) al server senza questo comando?


nell'ultima versione di synaptic è possibile aggiungere i ppa direttamente nelle fonti del software anziché in una riga di deb
Dirk Hartzer Waldeck,

1
- La risposta di @ Doug è corretta per Ubuntu 16.04 - La risposta di @ fossfreedom è corretta per Ubuntu 14.04 Su Ubuntu 16.04 il pacchetto giusto è effettivamente software-properties-common, come mostrato da: $ type add-apt-repository add-apt-repository hashed (/ usr / bin / add-apt-repository) $ apt-file search / usr / bin / add-apt-repository proprietà-software-comuni: / usr / bin / add-apt-repository su versioni precedenti lo si può trovare su python-software-properties--- AGGIORNAMENTO: lo commento qui, perché non ho potuto aggiungerlo come commento!
Azbarcea,

apt-add-repository funziona subito.
Atifm,

Risposte:


196

Puoi semplicemente aggiungere il add-apt-repositorycomando. In 13.10 e versioni successive, devi anche eseguire questo comando:

sudo apt-get install software-properties-common

Nota a margine: in 11.04 hanno aggiunto un link simbolico in add-apt-repositorymodo che possa essere eseguito come ciò apt-add-repositoryche ha totalmente più senso per me. Tutto il resto apt inizia con "apt".

NOTA: fa parte del python-software-propertiespacchetto (prima del 13.10):

sudo apt-get install python-software-properties

Vedendo che in realtà è una funzione di apt è in realtà logico per me. "aggiungi repository con apt"> "apt-add-repository"
MrChrisDruif

5
cosa succede se "python-software-properties" è già installato e si ottiene ancora "comando non trovato" quando si tenta di utilizzare "apt-add-repository"?
monkut,

Hai provato anche "add-apt-respository"? Nelle versioni precedenti alla 11.04 è necessario inserire "add" prima di "apt".
Mark Russell,

cosa dovresti fare quando 'apt-get install python-software-properties' fallisce perché dipende da python-curl, che non è 'installabile'? Sul mio sistema 12.04, si lamenta che "non è in grado di correggere i problemi - hai tenuto i pacchetti rotti"
Hoobajoob,

È software-properties-commonun insieme di strumenti definiti o una raccolta di programmi di utilità?
Alex,

74

Lascia che ti insegni come pescare. apt-fileti permette di scoprire quale pacchetto fornisce un determinato file. dpkg -Sfa la stessa cosa, ma solo per i pacchetti installati. apt-filefunziona indipendentemente dal fatto che il pacchetto sia stato installato o meno.

Quindi, prima di installare apt-file: sudo apt-get install apt-file. È quindi necessario aggiornare le sue informazioni, proprio come si deve con apt-get: sudo apt-file update. Ora è pronto per l'uso:

$ apt-file search add-apt-repository
python-software-properties: /usr/bin/add-apt-repository
python-software-properties: /usr/share/man/man1/add-apt-repository.1.gz

Quindi, in questo caso la prossima cosa da fare sarebbe installare python-software-properties.


3
consiglio eccellente - forse non dovrebbe essere sepolto in questa domanda - una domanda separata sarebbe una buona idea per evidenziarlo.
Fossfreedom

@fossfreedom È di questo che stai parlando? - askubuntu.com/questions/13792/…
jrg

9
Grazie a questo suggerimento ho scoperto che in 12.10 il server apt-add-repository si trova nelle proprietà-software-comuni (non più nelle proprietà-software python)
Kat Amsterdam

Perché continuo a dimenticare che esiste questo comando incredibilmente utile! Bella risposta.
lleaff

53

Non è necessariamente la risposta migliore, ma funzionerà:

Il vecchio stile (prima di Ubuntu 9.10, lo chiamano) di editing /etc/apt/sources.listfunziona ancora. Sarà inoltre necessario ottenere manualmente la chiave GPG sul sistema.

Sui vecchi sistemi Ubuntu (pre 9.10):

Passaggio 1: visita la pagina di panoramica di PPA in Launchpad. Cerca l'intestazione che dice Aggiunta di questo PPA al tuo sistema e fai clic sui dettagli tecnici su questo link PPA.

Passaggio 2: utilizzare la casella a discesa Visualizza fonti. Elenco voci per selezionare la versione di Ubuntu in uso.

Passaggio 3: vedrai che la casella di testo direttamente sotto riporta qualcosa del genere:

deb http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu jaunty main

Copia quelle righe.

Passaggio 4: aprire un terminale e digitare:

sudo gedit /etc/apt/sources.list

Verrà aperto un editor di testo contenente l'elenco di archivi attualmente in uso sul sistema. Scorri fino alla fine del file e incolla le linee che hai copiato nel passaggio sopra.

Salvare il file ed uscire dall'editor di testo.

Passaggio 5: torna alla pagina di panoramica di PPA, cerca l'intestazione Chiave di firma. Vedrai qualcosa del tipo:

1024R / 72D340A3 (Che cos'è questo?)

Copia la porzione dopo la barra, ma non includendo il link di aiuto; ad es. solo 72D340A3.

Passo 6: Ora devi aggiungere quella chiave al tuo sistema in modo che Ubuntu possa verificare i pacchetti dal PPA. Nel tuo terminale, inserisci:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 72D340A3

(Sostituisci 72D340A3 con tutto ciò che hai copiato nel passaggio 5.)

Questo ora tirerà giù la chiave del PPA e la aggiungerà al tuo sistema.

Passo 7: Ora, come una volta, dovresti dire al tuo sistema di aprire l'elenco più recente del software da ogni archivio che conosce, incluso il PPA che hai appena aggiunto:

sudo apt-get update

Ora sei pronto per iniziare l'installazione del software dal PPA!


1
Se non viene fornita un'altra risposta più rapida e intuitiva, inserirò questa come corretta. Risolve il problema in modo "speciale";)
Luis Alvarado,

1
Mentre add-apt-repository è più semplice, in un'installazione server mi piace mantenere le cose snelle, quindi non mi dispiace farlo manualmente. Questa era la risposta che stavo cercando.
D. Strout,

1
Questo metodo è molto meglio dell'installazione apt-add-repositorye di tutte le cazzate fornite con il pacchetto richiesto.
Dmitry Minkovsky,

4
Il pacchetto software-properties-common è ENORME, sembra troppo per aggiungere semplicemente del testo a un file ed eseguire un paio di comandi. Un tale spreco di spazio durante l'utilizzo in Docker. Questa risposta è molto utile!
rsmoorthy,

3
Questa dovrebbe essere la risposta accettata, dal momento che l'OP ha chiesto come muoversi senza utilizzare add-apt-repository ... Grazie mille per questo!
DJ

15

add-apt-repositoryè fornito dal pacchetto python-software-properties.

Pertanto, se è necessario installare tramite

sudo apt-get install python-software-properties

Grazie! Devo dire che trovo un nome abbastanza illogico. Inoltre, hai idea del perché non sia installato standard?
Peter Smit,

2
concordato illogico - sul perché, si potrebbe ipotizzare che i server siano generalmente "riparati" in termini di esecuzione del software. Quindi non è necessario il "lusso" di aggiungere e rimuovere i repository frequentemente ... fine della speculazione!
Fossfreedom

Perché è illogico? È un insieme di strumenti Python per gestire le proprietà del software. add-apt-repository è uno di quegli strumenti.
Jo-Erlend Schinstad,

Ho già python-software-propertiesinstallato ma continuo a ricevere questo errore. Ho provato apt-adde add-aptnotazioni, e nessuno funziona ... cosa fare?
Mohamad,

1
@Mohamad, perché è sbagliato, almeno per Ubuntu 14.04. Tutto ciò che devi installare è software-properties-common.
Theodore R. Smith

15

Esegui questo comando:

sudo apt-get install software-properties-common

E quindi puoi aggiungere il tuo repository in esecuzione:

sudo add-apt-repository [REPOSITORY]

Rinnova per sostituire [REPOSITORY]con il nome del repository che desideri aggiungere.


Questo ha funzionato perfettamente.
Aaron il

0

Ne ho discusso con un collega qualche settimana fa. Dare

apt-add-repository

un tentativo. Non ha bisogno di altri pacchetti. Si noti che apt appare prima di aggiungere. L'ordine è importante perché è necessario installare il repository add-apt.

Per quei negligenti là fuori. Prova questo file Vagrant. Nota, sto partendo da una nuova immagine fidata, e aggiungendo il ppa immediatamente fuori dalla scatola.

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure(2) do |config|

  config.vm.box = "ubuntu/trusty64"
  config.ssh.username = "vagrant"

  config.vm.provision "shell", inline: <<-SHELL
    sudo apt-add-repository ppa:george-edison55/cmake-3.x -y
    sudo apt update
    sudo apt upgrade
    sudo apt install -y virtualbox-guest-dkms
    sudo apt-get install -y curl g++ libpng12-dev  \
      libtiff5-dev libssl-dev libxml2-dev libxslt1-dev libpq-dev postgresql-client \
      postgresql pgadmin3 liblcms2-dev libcrypto++9 libcrypto++-dev \
      graphviz-dev libboost1.55-dev libboost-filesystem1.55-dev libboost-system1.55-dev \
      libexpat1-dev python-software-properties qtbase5-dev qttools5-dev  \
      libqt5svg5-dev qtscript5-dev qtdeclarative5-dev qtmultimedia5-dev \
      libsqlite3-dev qt5-default cmake

  SHELL
end

Aggiornamento: solo per chiarire, sembra che le immagini cloud per Ubuntu precise e up abbiano già installato il pacchetto corretto. Quindi, sia che si tratti di script cloud-init o di un file vagabondo, è presente apt-add-repository. Poiché add-apt-repository è nello stesso pacchetto che dovrebbe funzionare anche.


L'ordine non ha importanza. Vedi askubuntu.com/questions/83489/… .
edwinksl,

1
Spiega perché allora questo file vagabondo funziona. Nota non sto sostenendo che fanno qualcosa di diverso. Fanno esattamente la stessa cosa. Hai solo bisogno di un pacchetto per l'add-apt, dove l'altro funziona da zero.
Atifm,

@atifm: vedi questa risposta : $ apt-file search add-apt-repository software-properties-common: / usr / bin / add-apt-repository software-properties-common: / usr / share / man / man1 / add- apt-repository.1.gz $ ricerca file apt apt-add-repository proprietà-software-comune: / usr / bin / apt-add-repository proprietà-software-comune: / usr / share / man / man1 / apt- add-repository.1.gz
tricasse

@tricasse: grazie per il link a apt-file, che sarà utile altrove. Quindi hai ragione, sono nello stesso pacchetto verificato da apt-file. Detto questo, sembra che le immagini cloud di Ubuntu (per vagabondo) per il pacchetto preciso e affidabile abbia già installato. Non sono sicuro che sia sempre stato così, ma al momento sembra essere il caso
Atifm,
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.