Como adicionar um PPA em um servidor?

160

A versão do servidor do Ubuntu não possui o add-apt-repositorycomando Como posso adicionar um PPA ( Personal Package Archive ) ao servidor sem esse comando?

Luis Alvarado
fonte
na última versão do sináptica você pode adicionar ppa de diretamente nas fontes em vez de uma linha deb software
Dirk Hartzer Waldeck
1
- A resposta de @ Doug está correta para o Ubuntu 16.04 - A resposta de @ fossfreedom está correta para o Ubuntu 14.04 No Ubuntu 16.04 o pacote certo é realmente software-properties-common, como mostrado por: $ type add-apt-repository add-apt-repository está com hash (/ usr / bin / add-apt-repository) $ search-file apt / usr / bin / add-apt-repository software-properties-common: / usr / bin / add-apt-repository nas versões anteriores, pode ser encontrado em python-software-properties--- UPDATE: Eu comento aqui, porque não pude adicioná-lo como um comentário!
Azbarcea
O apt-add-repository funciona imediatamente.
Atifm 19/08/19

Respostas:

196

Você pode simplesmente adicionar o add-apt-repositorycomando. Na 13.10 e posterior, você também precisa executar este comando:

sudo apt-get install software-properties-common

Nota lateral: no 11.04, eles adicionaram um link simbólico para add-apt-repositoryque ele pudesse ser executado, o apt-add-repositoryque totalmente faz mais sentido para mim. Todo o resto do apt começa com "apt".

NOTA: Faz parte do python-software-propertiespacote (antes das 13.10):

sudo apt-get install python-software-properties
Mark Russell
fonte
Vendo que é realmente uma função do apt, é realmente lógico para mim. "adicionar repositório com o apt"> "apt-add-repository"
MrChrisDruif 27/03
5
e se "python-software-properties" já estiver instalado e você ainda receber "command not found" ao tentar usar "apt-add-repository"?
Monkut
Você também tentou "add-apt-respository"? Nas versões anteriores ao 11.04, você deve colocar o "add" antes do "apt".
26612 Mark Russell
o que você deve fazer quando o 'apt-get install python-software-properties' falhar porque depende do python-curl, que não é 'instalável'? No meu sistema 12,04, ele se queixa de que é "incapaz de corrigir problemas - você manteve pacotes quebrados"
Hoobajoob
É software-properties-commonum conjunto de ferramentas definidas ou uma coleção de utilitários?
Alex
74

Deixe-me ensiná-lo a pescar. apt-filepermite descobrir qual pacote fornece um determinado arquivo. dpkg -Sfaz a mesma coisa, mas apenas para pacotes instalados. apt-filefunciona se o pacote foi ou não instalado.

Então, primeiro de instalar o apt-file: sudo apt-get install apt-file. Você, então, necessidade de actualizar a informação, assim como você tem que com o apt-get: sudo apt-file update. Agora está pronto para 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

Portanto, neste caso, a próxima coisa a fazer seria instalar python-software-properties.

Jo-Erlend Schinstad
fonte
3
dica excelente - talvez não deva ser enterrada nesta pergunta - uma pergunta separada seria uma boa idéia para destacar isso.
fossfreedom
@fossfreedom É disso que você está falando? - askubuntu.com/questions/13792/…
jrg
9
Devido a essa dica eu descobri que em 12,10 servidor apt-add-repositório está localizado em software-properties-comuns (não mais em python-software-properties)
Kat Amsterdam
Por que continuo esquecendo que esse comando incrivelmente útil existe! Ótima resposta.
lleaff
53

Não é necessariamente a melhor resposta, mas isso funcionará:

A maneira antiquada (anterior ao Ubuntu 9.10, como eles chamam) de edição /etc/apt/sources.listainda funciona. Você também precisará obter a chave GPG no sistema manualmente.

Em sistemas Ubuntu mais antigos (anteriores à 9.10):

Etapa 1: visite a página de visão geral do PPA no Launchpad. Procure o cabeçalho que lê Adicionando este PPA ao seu sistema e clique no link Detalhes técnicos sobre este PPA.

Etapa 2: use a caixa suspensa Exibir entradas sources.list para selecionar a versão do Ubuntu que você está usando.

Etapa 3: você verá que a caixa de texto diretamente abaixo mostra algo como isto:

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

Copie essas linhas.

Etapa 4: Abra um terminal e digite:

sudo gedit /etc/apt/sources.list

Isso abrirá um editor de texto que contém a lista de arquivos que seu sistema está usando no momento. Role até a parte inferior do arquivo e cole as linhas que você copiou na etapa acima.

Salve o arquivo e saia do editor de texto.

Etapa 5: de volta à página de visão geral do PPA, procure o cabeçalho da chave Assinatura. Você verá algo como:

1024R / 72D340A3 (o que é isso?)

Copie a parte após a barra, mas não incluindo o link de ajuda; por exemplo, apenas 72D340A3.

Etapa 6: Agora você precisa adicionar essa chave ao seu sistema para que o Ubuntu possa verificar os pacotes do PPA. No seu terminal, digite:

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

(Substitua 72D340A3 pelo que você copiou na etapa 5.)

Isso agora puxa a chave do PPA e a adiciona ao seu sistema.

Etapa 7: Agora, como uma única vez, você deve solicitar ao seu sistema a lista mais recente de softwares de cada arquivo que conhece, incluindo o PPA que você acabou de adicionar:

sudo apt-get update

Agora você está pronto para começar a instalar o software do PPA!

Broam
fonte
1
Se nenhuma outra resposta mais rápida e amigável for dada, colocarei esta como correta. Ele resolve o problema de uma maneira "especial";)
Luis Alvarado
1
Embora o add-apt-repository seja mais fácil, em uma instalação de servidor eu gosto de manter as coisas simples, por isso não me importo de fazê-lo manualmente. Esta foi a resposta que eu estava procurando.
D. Strout
1
Este método é muito melhor do que instalar apt-add-repositorye toda a porcaria que acompanha o pacote necessário.
Dmitry Minkovsky
4
O pacote software-properties-common é ENORME, parece demais por acrescentar algum texto a um arquivo e executar alguns comandos. Um desperdício de espaço ao usar no Docker. Esta resposta é muito útil!
rsmoorthy
3
Esta deve ser a resposta aceita, já que o OP perguntou como se locomover sem usar o add-apt-repository ... Muito obrigado por este!
djBo
15

add-apt-repositoryé fornecido pelo pacote python-software-properties.

Portanto, se você deve instalar via

sudo apt-get install python-software-properties
liberdade de expressão
fonte
Obrigado! Devo dizer que encontro um nome bastante ilógico. Além disso, você tem alguma idéia de por que não é padrão instalado?
Peter Peter Smit
2
concordou ilógico - por que, você pode especular que os servidores geralmente são "fixos" em termos de execução de software. Portanto, você não precisa do 'luxo' de adicionar e remover repositórios com frequência ... fim de especulação!
fossfreedom
Por que isso é ilógico? É um conjunto de ferramentas python para lidar com propriedades de software. O add-apt-repository é uma dessas ferramentas.
Jo-Erlend Schinstad
python-software-propertiesinstalei, mas continuo recebendo esse erro. Eu tentei apt-adde add-aptanotações, e nenhum trabalho ... o que fazer?
Mohamad 15/05
1
@ Mohamad, porque está errado, pelo menos no Ubuntu 14.04. Tudo que você precisa instalar é software-properties-common.
Theodore R. Smith
15

Execute este comando:

sudo apt-get install software-properties-common

E então você pode adicionar seu repositório em execução:

sudo add-apt-repository [REPOSITORY]

Lembre-se de substituir [REPOSITORY]pelo nome do repositório que você deseja adicionar.

Doug
fonte
Isso funcionou perfeitamente.
Aaron
0

Eu tive um debate com um colega sobre isso há algumas semanas. Dar

apt-add-repository

uma tentativa. Não precisa de nenhum outro pacote. Observe que o apt aparece antes de adicionar. A ordem importa, porque o add-apt-repository precisa ser instalado.

Para aqueles pessimistas por aí. Experimente este arquivo do Vagrant. Observe que estou começando com uma imagem confiável e adicionando o ppa imediatamente.

# -*- 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

Atualização: Apenas para esclarecer, parece que as imagens da nuvem para o ubuntu precisam e já possuem o pacote correto já instalado. Portanto, se estamos falando de scripts cloud-init ou de um arquivo vagante, o apt-add-repository está presente. Como o add-apt-repository está no mesmo pacote que também deve funcionar.

Atifm
fonte
A ordem não importa. Veja askubuntu.com/questions/83489/… .
precisa saber é o seguinte
1
Explique por que esse arquivo vagante funciona então. Note que não estou argumentando que eles fazem algo diferente. Eles fazem exatamente a mesma coisa. Você só precisa de um pacote para o add-apt, onde o outro funciona do zero.
Atifm 19/08/19
@atifm: Veja esta resposta : $ 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 $ apt-file search apt-add-repository software-properties-common: / usr / bin / apt-add-repository software-propriedades-comuns: / usr / share / man / man1 / apt- add-repository.1.gz
tricasse
@tricasse: Obrigado pelo link do apt-file, que será útil em outros lugares. Portanto, você está certo, eles estão no mesmo pacote que o verificado pelo apt-file. Dito isto, parece que as imagens da nuvem do ubuntu (para vagrant) para precisas e confiáveis ​​têm o pacote já instalado. Não sei se isso foi sempre o caso, mas parece ser o caso no momento
Atifm