Estoy tratando de seguir las instrucciones de "Instalación de Cross Toolchain en Ubuntu 10.04 (Lucid) y 10.10 (Maverick) Hosts" en wiki.linaro.org (en mi Ubuntu 10.04 VM). El primer paso es:
sudo add-apt-repository ppa:linaro-maintainers/toolchain
Pero cuando corro eso me sale:
Error reading https://launchpad.net/api/1.0/~linaro-maintainers/+archive/toolchain: <urlopen error [Errno 110] Connection timed out>
Supongo que el problema es con mi configuración para el servidor proxy de mi empleador, particularmente para HTTPS.
Cuando abrí https://launchpad.net/api/1.0/~linaro-maintainers/+archive/toolchain en Firefox, obtuve "La conexión ha expirado". Luego entré en Preferencias de Firefox -> Avanzado -> Red -> Configuración ... y configuré Proxy HTTP en "puerta de enlace" y Puerto en 8080, y marqué "Usar este servidor proxy para todos los protocolos". Entonces la página cargada. Esto apoya mi teoría.
Intenté configurar las variables de entorno http_proxy y https_proxy (minúsculas y mayúsculas):
$ set | grep -i proxy
HTTPS_PROXY=https://gateway:8080
HTTP_PROXY=http://gateway:8080
http_proxy=http://gateway:8080
https_proxy=https://gateway:8080
También intenté cambiarlos a:
$ set | grep -i proxy
HTTPS_PROXY=gateway:8080
HTTP_PROXY=gateway:8080
http_proxy=gateway:8080
https_proxy=gateway:8080
E intenté agregar esta segunda línea a /etc/apt/apt.conf:
Acquire::http::proxy "http://gateway:8080/";
Acquire::https::proxy "https://gateway:8080/";
Pero sigo recibiendo el mismo error.
¿Cómo soluciono esto?
Actualización: Seguí las instrucciones en la respuesta aceptada a "Problema al agregar repositorios y conectarse desde la terminal detrás de un proxy" y llegué más lejos:
$ sudo add-apt-repository ppa:linaro-maintainers/toolchain
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 1DD749B890A6F66D050D985CF1FCBACA7BE1F97B
gpg: requesting key 7BE1F97B from hkp server keyserver.ubuntu.com
gpgkeys: HTTP fetch error 7: couldn't connect to host
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
Me pregunto si el "error de búsqueda HTTP" significa que también necesito agregar "Valores predeterminados env_keep = http_proxy" a /etc/sudoers
...
Actualización n. ° 2: agregué:
Defaults env_keep="http_proxy"
Defaults env_keep="https_proxy"
... como en el Comentario 18 para el error 516032 , pero sigo teniendo el mismo error "gpgkeys: HTTP fetch error 7: no se pudo conectar al host".
Y esto es curioso:
$ sudo env | grep proxy
https_proxy=https://gateway:8080
... porque http_proxy no está allí.
Cualquier consejo es apreciado.
Actualización n. ° 3: dado que el host de mi VM es una computadora portátil, me la llevé a casa y probé allí (sin proxy):
$ sudo add-apt-repository ppa:linaro-maintainers/toolchain
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 1DD749B890A6F66D050D985CF1FCBACA7BE1F97B
gpg: requesting key 7BE1F97B from hkp server keyserver.ubuntu.com
gpg: key 7BE1F97B: public key "Launchpad Linaro Overlay PPA" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
Funcionó. Entonces, el problema está relacionado con la configuración del proxy. Pero supongo que tengo una solución alternativa.
fuente
Respuestas:
Además de configurar proxies, diga
sudo
a preservar el entorno con la-E
opción:con nombre de usuario y contraseña:
fuente
https_proxy
configuración era necesaria ...: Pman sudo
:-E, --preserve-env
Indica a la política de seguridad que el usuario desea preservar sus variables de entorno existentes. La política de seguridad puede devolver un error si el usuario no tiene permiso para preservar el medio ambiente.mUse el siguiente código en una terminal para agregar la clave gpg detrás del proxy,
Y reemplace las letras mayúsculas en consecuencia. Si está utilizando un proxy sin ninguna autenticación de usuario (es decir, nombre de usuario y contraseña), use
http-proxy=http://PROXY_URL:PORT/
en su lugar.Por ejemplo, para
GPG_KEY=C2514567EEA14886
que pueda usar,dónde,
Si no tiene autenticación de usuario, simplemente use,
fuente
¡Finalmente! Debe configurar https_proxy a través de:
solo establecer http_proxy no es suficiente.
Y necesitaba ejecutar el comando add-apt-repository como root, NO a través de sudo.
Código:
fuente
Parece que la configuración del proxy está configurada, pero de alguna manera no se puede contactar al servidor ...
Tuve un problema muy similar que resolví así: el proxy corporativo solo permite el puerto 80 y 443 por razones de seguridad, por lo que cuando se configura, ya que el protocolo HKP está utilizando el puerto 11371, no lo dejará pasar.
Por lo tanto, a menos que salga SSH y obtenga la clave de uno de sus servidores en el exterior, descargándolo e instalándolo localmente, puede especificar el servidor de claves desde uno de los que se enumeran a continuación y especificar el puerto:
http://sks-keyservers.net/overview-of-pools.php
p.ej:
Boom, Voila!
fuente
sudo -E apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
La razón por la que su
sudoers
cambio no funcionó como se esperaba es que en lugar de:Deberías haber escrito:
También asegúrese de que el espacio entre
Defaults
yenv_keep
sea una pestaña cada vez.fuente
Logré solucionar esto editando
/usr/lib/python3/dist-packages/softwareproperties/ppa.py
y agregandobajo la siguiente línea
Más información de fondo
ppa.py
es el script de python que usaadd-apt-repository
para llamar a gpg. A veces parece haber un error con gpg donde no usa la variable de entorno http_proxy. Esto puede confirmarse viendo el archivo/root/.gnupg/dirmngr.conf
y verificando quehonor-http-proxy
no esté comentado.fuente
Este enfoque de cuatro pasos funcionó para mí en una máquina virtual Ubuntu 17.04 detrás de un proxy corporativo.
sudo apt-add-repository ppa:brightbox/ruby-ng
y deja que fallesudo apt update
y busca un mensaje de error comoThe following signatures couldn't be verified because the public key is not available: NO_PUBKEY F5DA5F09C3173AA6
sudo apt-key adv --keyserver-options http-proxy=http://10.0.2.2:3128 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys F5DA5F09C3173AA6
sudo apt update
ahora funcionaráTenga en cuenta que la máquina virtual host está ejecutando un
CNTLM
servidor proxy en el puerto 3128.fuente
Esto me ayudó a:
Supongo que hay algunas variables de entorno que no son necesarias en el comando pero que no dañan.
fuente
Agregue el PPA manualmente a su
/etc/apt/sources.list
:Guarde el archivo y ejecútelo
sudo apt-get update
. Este error puede aparecer:Ejecute el siguiente comando para aceptar la clave para el PPA, recordando cambiar la clave (5BB92C09DB82666C) para el PPA correspondiente.
Corre
sudo apt-get update
y listo.Ref: Cómo agregar PPA de Launchpad en Debian a través del
add-apt-repository
comandofuente
En realidad, me encuentro con los mismos problemas, así es como encontré esta página.
Las variables de entorno http_proxy (distingue entre mayúsculas y minúsculas) y https_proxy (en cualquier caso) hacen algo. No establecerlos falla en la primera etapa, establecer las variables de entorno parece tener algún efecto; fallará si no los exporta
(el resto es exitoso, esta vez)
El problema es que, a veces, simplemente se atasca y termina con el mensaje de tiempo de espera habitual: No se puede agregar PPA: '"Error al leer https://launchpad.net/api/1.0/~webupd8team/+archive/java : (7,' Error al conectar con el puerto 443 de launchpad.net: Se agotó el tiempo de espera de la conexión ') "'.
... pero estoy haciendo trampa, estoy haciendo todo esto como root. Una solución fácil es editar / etc / profile o, en Ubuntu / Mint, simplemente agregue un script en /etc/profile.d:
Ah, sí, también está eso de curl (que es utilizado por apt-add-repository, por cierto). El manual dice agregar .curlrc en su directorio de inicio. Como apt-add-directory es propio de root, significa agregarlo a /root/.curlrc:
Una buena idea es hacer lo mismo en tu propio ~ / .curlrc
Además, habilitar el proxy en / etc / wgetrc es algo bueno, aunque no tiene nada que ver con la pregunta formulada, solo estoy guardando otra búsqueda en Google (si lee esto, tiene múltiples con un proxy ) ...
fuente
En
/etc/apt/apt.conf.d/01proxy
agregar algo como estoEsto representará todas las descargas de aptitude, pero creo que esta es la única forma de hacerlo en el back-end. Si su proxy lo admite, también puede usar una URL como la
http://my.proxy:port/www.target.site.com/url
que sé que funcionaapt-cache-ng
No estoy seguro de si add-apt-repository sí mismo utiliza esta configuración, pero si no puede hacer que eso funcione, siempre puede agregar el repositorio a su
/etc/apt/sources.list
o/etc/apt/sources.list.d/*mytoolchain*
Desde 11.10 también hay una herramienta cruzada disponible en el repositorio principal, solo
apt-get install gcc-arm-linux-gnueabihf
. También hay cadenas de herramientas cruzadas disponibles de emdebian, y algunas instrucciones aquí: http://gsoc.sitedethib.com/posts/apt-get_install_gcc-4.7-arm-linux-gnueabihf/fuente
Lo que hago es usar http a través de curl en lugar de intentar proxy apt-key o gpg:
curl -sSL \ ' http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xBBEBDCB318AD50EC6865090613B00F1FD2C19886 ' \ | sudo apt-key add -
Este método debe usarse en lugar de la configuración de la
apt-key
línea de comandoshttp_proxy
o dehttps_proxy
las variables de entorno (que están deshabilitadas en las versiones más recientes de apt-key).fuente
Ejecute el siguiente comando en la terminal
fuente
Las variables de entorno de todo el sistema realmente deberían agregarse a
/etc/environment
(usesudo
ogksu
), pero el error que se le informa parece indicar que no se encontraron datos gpg. Ideas:fuente
Otra solución es agregar un
proxy.conf
archivo APT ,/etc/apt/apt.conf.d/proxy.conf
fuente