На этот вопрос уже есть ответ:
Я использую Ubuntu 14.04 и 12.04 с последними обновлениями за прокси-сервером в моей школе. Несколько месяцев назад у меня не было проблем. Однако за последние два месяца, когда я пытался добавить репозиторий с помощью add-apt-repository
, не было получено никакого ключа. Затем я могу успешно использовать sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEY
, но это раздражает. Я создал сценарии, которые добавляют PPA, устанавливают программное обеспечение и многое другое, которые сейчас не работают из-за этой проблемы.
Следует ли мне отправлять отчет об ошибке? Если да, не мог бы кто-нибудь направить меня куда подавать.
Вот как выглядит вывод моего терминала при попытке добавить PPA для индикатора погоды:
$ sudo add-apt-repository ppa:atareao/atareao Applications from atareao More info: https://launchpad.net/~atareao/+archive/ubuntu/atareao Press [ENTER] to continue or ctrl-c to cancel adding it gpg: keyring `/tmp/tmp16ytp9px/secring.gpg' created gpg: keyring `/tmp/tmp16ytp9px/pubring.gpg' created gpg: requesting key 36FD5529 from hkp server keyserver.ubuntu.com gpgkeys: key A3D8A366869FE2DC5FFD79C36A9653F936FD5529 can't be retrieved gpg: no valid OpenPGP data found. gpg: Total number processed: 0 $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36FD5529 Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.fla11h2USs --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d/steam.gpg --keyserver keyserver.ubuntu.com --recv-keys 36FD5529 gpg: requesting key 36FD5529 from hkp server keyserver.ubuntu.com gpg: key 36FD5529: public key "Launchpad PPA for atareao" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
Обновление: Мне удалось заставить его работать с параметром -E
для sudo, поэтому работает команда sudo -E add-apt-repository ppa: atareao / atareao
. Однако я не понимаю, почему раньше все работало без этого, а теперь нет. Кроме того, похоже, это не объясняет, почему другие команды с sudo
работают без параметра -E
.Это решение взято из Ubuntu 10.10.
Вы сталкиваетесь с двумя проблемами:
add-apt-repository
полагается на существование корректного http_proxy
и https_proxy
значения.
sudo
не будет использовать все текущие значения среды. Вероятно, из соображений безопасности. Существует две возможности, как преодолеть это:
Звонить sudo -E add-apt-repository <additional-options>
Это будет использовать всю текущую среду.
Можно настроить sudo
автоматически скопировать http_proxy
и https_proxy
также. Сделайте это:
sudo visudo
Добавьте следующие строки:
Defaults env_keep +="http_proxy"
Defaults env_keep +="https_proxy"
Blantantly скопирован с этого ответа.