Я пытаюсь следовать инструкциям «Установка Cross Toolchain на хостах Ubuntu 10.04 (Lucid) и 10.10 (Maverick)» на wiki.linaro.org (на моей виртуальной машине Ubuntu 10.04). Первый шаг:
sudo add-apt-repository ppa:linaro-maintainers/toolchain
Но когда я бегу, я получаю:
Error reading https://launchpad.net/api/1.0/~linaro-maintainers/+archive/toolchain: <urlopen error [Errno 110] Connection timed out>
Я предполагаю, что проблема в моей конфигурации для прокси-сервера моего работодателя, особенно для HTTPS.
Когда я открыл https://launchpad.net/api/1.0/~linaro-maintainers/+archive/toolchain в Firefox, у меня появилось сообщение «Время ожидания истекло». Затем я зашел в «Настройки» Firefox -> «Дополнительно» -> «Сеть» -> «Настройки», установил для HTTP-прокси значение «шлюз», а для порта - 8080 и установил флажок «Использовать этот прокси-сервер для всех протоколов». Затем страница загружена. Это поддерживает мою теорию.
Я попытался установить переменные среды http_proxy и https_proxy (как в нижнем, так и в верхнем регистре):
$ set | grep -i proxy
HTTPS_PROXY=https://gateway:8080
HTTP_PROXY=http://gateway:8080
http_proxy=http://gateway:8080
https_proxy=https://gateway:8080
Я также попытался изменить их на:
$ set | grep -i proxy
HTTPS_PROXY=gateway:8080
HTTP_PROXY=gateway:8080
http_proxy=gateway:8080
https_proxy=gateway:8080
И я попытался добавить эту вторую строку в /etc/apt/apt.conf:
Acquire::http::proxy "http://gateway:8080/";
Acquire::https::proxy "https://gateway:8080/";
Но я продолжаю получать ту же ошибку.
Как мне устранить это?
Обновление: я следовал инструкциям в принятом ответе на «Проблема добавления репозиториев и подключения с терминала за прокси-сервером» и получил дальнейшее:
$ 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
Интересно, означает ли «ошибка HTTP-извлечения» мне также нужно добавить «Defaults env_keep = http_proxy» в /etc/sudoers
...
Обновление № 2: я добавил:
Defaults env_keep="http_proxy"
Defaults env_keep="https_proxy"
... как в комментарии 18 для ошибки 516032 , но я все еще получаю ту же ошибку "gpgkeys: ошибка HTTP-выборки 7: не удалось подключиться к хосту".
И это любопытно
$ sudo env | grep proxy
https_proxy=https://gateway:8080
... потому что http_proxy там нет.
Любой совет приветствуется.
Обновление № 3: Поскольку хост моей виртуальной машины - ноутбук, я взял его домой и попробовал там (без прокси):
$ 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)
Это сработало. Так что проблема связана с настройкой прокси. Но я полагаю, у меня есть обходной путь.
источник
Ответы:
В дополнение к настройке прокси скажите
sudo
сохранить среду с помощью-E
опции:с именем пользователя и паролем:
источник
https_proxy
конфигурация была необходима ...: Pman sudo
:-E, --preserve-env
Указывает политике безопасности, что пользователь желает сохранить существующие переменные среды. Политика безопасности может возвращать ошибку, если у пользователя нет разрешения на сохранение среды.mИспользуйте следующий код в терминале, чтобы добавить ключ gpg за прокси,
И заменить заглавные буквы соответственно. Если вы используете прокси-сервер без какой-либо аутентификации пользователя (т.е. имени пользователя и пароля), используйте
http-proxy=http://PROXY_URL:PORT/
вместо этого.Например, чтобы
GPG_KEY=C2514567EEA14886
вы могли использовать,где,
Если у вас нет аутентификации пользователя, просто используйте,
источник
В заключение! Вам нужно установить https_proxy через:
недостаточно только установить http_proxy.
И мне нужно было выполнить команду add-apt-repository от имени пользователя root, а не через sudo.
Код:
источник
Кажется, что конфигурация прокси настроена, но каким-то образом сервер не может связаться ...
У меня была очень похожая проблема, которую я решил следующим образом: корпоративный прокси-сервер разрешает только порты 80 и 443 по соображениям безопасности, поэтому событие, когда он настроен, поскольку протокол HKP использует порт 11371, не пропустит вас.
Таким образом, если не считать SSH и получить ключ с одного из ваших внешних серверов, загрузить его и установить его локально, вы можете указать сервер ключей из перечисленных ниже и указать порт:
http://sks-keyservers.net/overview-of-pools.php
например:
Бум, вуаля!
источник
sudo -E apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
Причина ваше
sudoers
изменение не работает , как ожидалось, что вместо того , чтобы :Вы должны были написать:
Также удостоверьтесь, что пространство между
Defaults
иenv_keep
является вкладкой каждый раз.источник
Мне удалось обойти это путем редактирования
/usr/lib/python3/dist-packages/softwareproperties/ppa.py
и добавленияпод следующей строкой
Дополнительная справочная информация
ppa.py
скрипт python, используемыйadd-apt-repository
для вызова gpg Иногда кажется, что в gpg есть ошибка, когда он не использует переменную окружения http_proxy. Это можно подтвердить, просмотрев файл/root/.gnupg/dirmngr.conf
и проверив, чтоhonor-http-proxy
оно не закомментировано.источник
Этот четырехступенчатый подход работал для меня на виртуальной машине Ubuntu 17.04 за корпоративным прокси.
sudo apt-add-repository ppa:brightbox/ruby-ng
и пусть это потерпит неудачуsudo apt update
и искать сообщение об ошибке, какThe 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
теперь будет работатьОбратите внимание, что на виртуальной машине хоста работает
CNTLM
прокси-сервер через порт 3128.источник
Это помогло мне:
Я предполагаю, что есть некоторые переменные окружения, которые не нужны в команде, но не наносят вреда.
источник
Добавьте PPA вручную к вашему
/etc/apt/sources.list
:Сохраните файл и запустите
sudo apt-get update
. Эта ошибка может появиться:Выполните следующую команду, чтобы принять ключ для PPA, не забывая изменить ключ (5BB92C09DB82666C) для соответствующего PPA.
Беги
sudo apt-get update
и все готово.Ссылка: Как добавить PPA в Launchpad в Debian с помощью
add-apt-repository
командыисточник
На самом деле, я сталкиваюсь с теми же проблемами, вот как я нашел эту страницу.
Переменные окружения http_proxy (с учетом регистра) и https_proxy (независимо от регистра) что-то делают. Не устанавливать их на первом этапе не удается, установка переменных окружения, похоже, имеет некоторый эффект; это не удастся, если вы не экспортируете их
(остальное удачно - на этот раз)
Дело в том, что иногда он просто застревает и заканчивается обычным сообщением об истечении времени ожидания: невозможно добавить PPA: «Ошибка чтения https://launchpad.net/api/1.0/~webupd8team/+archive/java : (7, ' Не удалось подключиться к порту 443 launchpad.net: истекло время ожидания соединения ")" '.
... но я обманываю, я делаю все это как root. Простое решение - отредактировать / etc / profile или, в Ubuntu / Mint, просто добавить скрипт в /etc/profile.d:
О да, есть еще кое-что в curl (кстати, он используется в apt-add-repository). В руководстве говорится, что нужно добавить .curlrc в ваш домашний каталог. Поскольку apt-add-directory является собственностью root, это означает добавление его в /root/.curlrc:
Хорошая идея - сделать то же самое в вашем собственном ~ / .curlrc
Также полезно включить прокси в / etc / wgetrc, хотя это не имеет ничего общего с заданным вопросом, я просто сохраняю вам другой поиск в Google (если вы читаете это, у вас есть несколько с прокси ) ...
источник
В
/etc/apt/apt.conf.d/01proxy
добавьте что-то вроде этогоЭто будет прокси для всех загрузок aptitude, но я думаю, что это единственный способ сделать это на сервере. Если ваш прокси-сервер поддерживает это, вы также можете использовать URL-адрес,
http://my.proxy:port/www.target.site.com/url
который, как я знаю, работает дляapt-cache-ng
Я не уверен, что add-apt-repository сам использует эти настройки, но если вы не можете сделать это, вы всегда можете добавить репозиторий в свой
/etc/apt/sources.list
или/etc/apt/sources.list.d/*mytoolchain*
Начиная с 11.10, в основном репо также есть кросс-инструментальная возможность
apt-get install gcc-arm-linux-gnueabihf
. Есть также кросс-инструментальные цепочки, доступные от emdebian, и некоторые инструкции здесь: http://gsoc.sitedethib.com/posts/apt-get_install_gcc-4.7-arm-linux-gnueabihf/источник
Я использую http через curl вместо того, чтобы пытаться прокси-ключ apt-key или gpg:
curl -sSL \ ' http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xBBEBDCB318AD50EC6865090613B00F1FD2C19886 ' \ | sudo apt-key add -
Этот метод следует использовать вместо
apt-key
командной строки илиhttp_proxy
илиhttps_proxy
настройки переменных окружения (которые отключены в новейших версиях APT-ключ).источник
Выполните приведенную ниже команду в терминале
источник
Общесистемные переменные среды действительно должны быть добавлены
/etc/environment
(использоватьsudo
илиgksu
), но сообщаемая вам ошибка, по-видимому, указывает на то, что данные gpg не найдены. Идеи:источник
Другое решение - добавить
proxy.conf
файл APT ,/etc/apt/apt.conf.d/proxy.conf
источник