¿Cómo agregar un PPA en un servidor?

160

La versión del servidor de Ubuntu no tiene el add-apt-repositorycomando. ¿Cómo puedo agregar un archivo de paquete personal (PPA) al servidor sin este comando?

Luis Alvarado
fuente
en la última versión de synaptic puede agregar ppa directamente en las fuentes de software en lugar de una línea de deb
Dirk Hartzer Waldeck
1
- La respuesta de @ Doug es correcta para Ubuntu 16.04 - La respuesta de @ fossfreedom es correcta para Ubuntu 14.04 En Ubuntu 16.04, el paquete correcto es software-properties-common, como se muestra en: $ type add-apt-repository add-apt-repository está en hash (/ usr / bin / add-apt-repository) $ apt-file search / usr / bin / add-apt-repository software-properties-common: / usr / bin / add-apt-repository en versiones anteriores se puede encontrar en python-software-properties--- ACTUALIZACIÓN: ¡Lo comento aquí, porque no pude agregarlo como comentario!
azbarcea
apt-add-repository funciona desde el primer momento.
Atifm

Respuestas:

196

Simplemente puede agregar el add-apt-repositorycomando. En 13.10 y posteriores, también debe ejecutar este comando:

sudo apt-get install software-properties-common

Nota al margen: en 11.04 agregaron un enlace simbólico para add-apt-repositoryque se pueda ejecutar, lo apt-add-repositoryque tiene más sentido para mí. Todo lo demás apt comienza con "apt".

NOTA: Es parte del python-software-propertiespaquete (antes de 13.10):

sudo apt-get install python-software-properties
Mark Russell
fuente
Ver que en realidad es una función de apt, en realidad es lógico para mí. "agregar repositorio con apt"> "apt-add-repository"
MrChrisDruif
55
¿Qué sucede si "python-software-properties" ya está instalado y aún así obtiene "comando no encontrado" cuando intenta usar "apt-add-repository"?
monkut
¿También probaste "add-apt-respository"? En las versiones anteriores a la 11.04, debe colocar el "add" antes del "apt".
Mark Russell
¿Qué se supone que debes hacer cuando falla 'apt-get install python-software-properties' porque depende de python-curl, que 'no es instalable'? En mi sistema 12.04, se queja de que es "incapaz de corregir problemas, ha retenido paquetes rotos"
Hoobajoob
¿Es software-properties-commonun conjunto de herramientas definidas o una colección de utilidades?
Alex
74

Déjame enseñarte a pescar. apt-filele permite averiguar qué paquete proporciona un archivo determinado. dpkg -Shace lo mismo, pero solo para los paquetes instalados. apt-filefunciona si el paquete ha sido instalado o no.

Así, en primer lugar instalar apt-file: sudo apt-get install apt-file. A continuación, deberá actualizar su información, al igual que usted tiene que con apt-get: sudo apt-file update. Ahora está listo para usar:

$ 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

Entonces, en este caso, lo siguiente sería instalar python-software-properties.

Jo-Erlend Schinstad
fuente
3
excelente consejo - tal vez no debería ser enterrado en esta pregunta - una pregunta separada sería una buena idea para resaltar esto.
fossfreedom
@fossfreedom ¿Es esto de lo que estás hablando? - askubuntu.com/questions/13792/…
jrg
99
Debido a este consejo descubrí que en 12.10 el servidor apt-add-repository se encuentra en software-properties-common (ya no en python-software-properties)
Kat Amsterdam
¿Por qué sigo olvidando que este comando increíblemente útil existe? Gran respuesta.
lleaff
53

No es necesariamente la mejor respuesta, pero esto funcionará:

La forma anticuada (anterior a Ubuntu 9.10, lo llaman) de edición /etc/apt/sources.listaún funciona. También necesitará obtener la clave GPG en el sistema manualmente.

En sistemas Ubuntu más antiguos (anteriores a 9.10):

Paso 1: visite la página de descripción general de PPA en Launchpad. Busque el encabezado que dice Agregar este PPA a su sistema y haga clic en Detalles técnicos sobre este enlace de PPA.

Paso 2: use el cuadro desplegable Mostrar entradas de sources.list para seleccionar la versión de Ubuntu que está usando.

Paso 3: Verás que el cuadro de texto directamente debajo dice algo como esto:

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

Copia esas líneas.

Paso 4: abre una terminal y escribe:

sudo gedit /etc/apt/sources.list

Esto abrirá un editor de texto que contiene la lista de archivos que su sistema está usando actualmente. Desplácese hasta la parte inferior del archivo y pegue las líneas que copió en el paso anterior.

Guarde el archivo y salga del editor de texto.

Paso 5: Regrese a la página de descripción general de PPA, busque el encabezado Clave de firma. Verás algo como:

1024R / 72D340A3 (¿Qué es esto?)

Copie la parte después de la barra pero sin incluir el enlace de ayuda; Por ejemplo, solo 72D340A3.

Paso 6: Ahora debe agregar esa clave a su sistema para que Ubuntu pueda verificar los paquetes desde el PPA. En su terminal, ingrese:

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

(Reemplace 72D340A3 con lo que haya copiado en el paso 5).

Esto ahora extraerá la clave del PPA y la agregará a su sistema.

Paso 7: Ahora, como algo excepcional, debe decirle a su sistema que despliegue la última lista de software de cada archivo que conoce, incluido el PPA que acaba de agregar:

sudo apt-get update

¡Ahora está listo para comenzar a instalar software desde el PPA!

Broam
fuente
1
Si no se da otra respuesta más rápida y fácil de usar, entonces pondré esta como la correcta. Resuelve el problema de una manera "especial";)
Luis Alvarado
1
Si bien add-apt-repository es más fácil, en una instalación de servidor me gusta mantener las cosas esbeltas, así que no me importa hacerlo manualmente. Esta fue la respuesta que estaba buscando.
D. Strout
1
Este método es mucho mejor que la instalación apt-add-repositoryy toda la basura que viene con el paquete requerido.
Dmitry Minkovsky
44
El paquete de software-propiedades-común es ENORME, parece demasiado para agregar texto a un archivo y ejecutar un par de comandos. Tal pérdida de espacio mientras se usa en Docker. ¡Esta respuesta es muy útil!
rsmoorthy
3
Esta debería ser la respuesta aceptada, ya que el OP preguntó cómo moverse sin usar add-apt-repository ... ¡Muchas gracias por esta!
djBo
15

add-apt-repositoryes proporcionado por el paquete python-software-properties.

Por lo tanto, si debe instalar a través de

sudo apt-get install python-software-properties
fossfreedom
fuente
¡Gracias! Debo decir que encuentro un nombre bastante ilógico. Además, ¿tienes alguna idea de por qué no está instalado de forma estándar?
Peter Smit el
2
acordó ilógico: en cuanto a por qué, podría especular que los servidores generalmente están 'arreglados' en términos de ejecución de software. Por lo tanto, no necesita el 'lujo' de agregar y eliminar repositorios con frecuencia ... ¡fin de especulación!
fossfreedom
¿Por qué es ilógico? Es un conjunto de herramientas de Python para manejar las propiedades del software. add-apt-repository es una de esas herramientas.
Jo-Erlend Schinstad
Ya lo python-software-propertiesinstalé pero sigo recibiendo este error. Lo intenté apt-addy las add-aptanotaciones, y ninguno funciona ... ¿qué hacer?
Mohamad
1
@Mohamad, porque está mal, al menos para Ubuntu 14.04. Todo lo que necesitas instalar es software-properties-common.
Theodore R. Smith el
15

Ejecute este comando:

sudo apt-get install software-properties-common

Y luego puede agregar su repositorio en ejecución:

sudo add-apt-repository [REPOSITORY]

Vuelva a reemplazar para reemplazar [REPOSITORY]con el nombre del repositorio que desea agregar.

Doug
fuente
Esto funcionó perfectamente.
Aaron
0

Tuve un debate con un colega sobre esto hace unas semanas. Dar

apt-add-repository

un intento. No necesita ningún otro paquete. Tenga en cuenta que apt aparece antes de agregar. El orden es importante porque debe instalarse add-apt-repository.

Para esos detractores por ahí. Prueba este archivo vagabundo. Tenga en cuenta que estoy comenzando desde una nueva imagen de confianza y agregando el ppa de inmediato.

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

Actualización: solo para aclarar, parece que las imágenes de la nube para ubuntu precisa y superior tienen el paquete correcto ya instalado. Entonces, si estamos hablando de scripts de inicio en la nube o de un archivo vagabundo, apt-add-repository está presente. Dado que add-apt-repository está en el mismo paquete que debería funcionar también.

Atifm
fuente
El orden no importa. Ver askubuntu.com/questions/83489/… .
edwinksl
1
Explique por qué este archivo vagabundo funciona entonces. Tenga en cuenta que no estoy argumentando que hacen algo diferente. Hacen exactamente lo mismo. Solo necesita un paquete para el add-apt, donde el otro funciona desde cero.
Atifm
@atifm: Vea esta respuesta : $ 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-properties-common: / usr / share / man / man1 / apt- add-repository.1.gz
tricasse
@tricasse: Gracias por el enlace a apt-file, que será útil en otros lugares. Así que a su derecha, están en el mismo paquete verificado por apt-file. Dicho esto, parece que las imágenes de la nube de ubuntu (para vagabundo) tienen un paquete preciso y confiable ya instalado. No estoy seguro si este siempre fue el caso, pero parece ser el caso en este momento
Atifm