Вопрос или проблема
Каждый раз, когда я пытаюсь выполнить sudo add-apt-repository ppa:docky-core/ppa
(для любого ppa, а не только для этого), он просто зависает навсегда, не выдавая никаких ошибок, даже с флагом -m. После того, как я завершаю его с помощью ctrl+c, отображается следующее:
^CTraceback (most recent call last):
File "/usr/bin/add-apt-repository", line 136, in <module>
shortcut = shortcut_handler(line)
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 864, in shortcut_handler
ret = factory(shortcut)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 469, in shortcut_handler
return PPAShortcutHandler(shortcut)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 426, in __init__
info = get_ppa_info(self.shortcut)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 380, in get_ppa_info
ret = get_ppa_info_from_lp(user, ppa)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 110, in get_ppa_info_from_lp
return get_info_from_lp(lp_url)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 104, in get_info_from_lp
return get_info_from_https(lp_url, True)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 96, in get_info_from_https
data = func(lp_url=url, accept_json=accept_json, retry_delays=retry_delays)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 139, in _get_https_content_py3
cafile=LAUNCHPAD_PPA_CERT)
File "/usr/lib/python3.7/urllib/request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.7/urllib/request.py", line 525, in open
response = self._open(req, data)
File "/usr/lib/python3.7/urllib/request.py", line 543, in _open
'_open', req)
File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
result = func(*args)
File "/usr/lib/python3.7/urllib/request.py", line 1360, in https_open
context=self._context, check_hostname=self._check_hostname)
File "/usr/lib/python3.7/urllib/request.py", line 1317, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/usr/lib/python3.7/http/client.py", line 1229, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1275, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1224, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1016, in _send_output
self.send(msg)
File "/usr/lib/python3.7/http/client.py", line 956, in send
self.connect()
File "/usr/lib/python3.7/http/client.py", line 1384, in connect
super().connect()
File "/usr/lib/python3.7/http/client.py", line 928, in connect
(self.host,self.port), self.timeout, self.source_address)
File "/usr/lib/python3.7/socket.py", line 716, in create_connection
sock.connect(sa)
KeyboardInterrupt
Какие-либо идеи, что может быть причиной этого? Спасибо.
Ручное добавление источника ppa и ключа сработало для меня. Проверьте ответ на этот вопрос: Я не могу добавить PPA репозиторий за прокси
Ответ или решение
Проблема, с которой вы столкнулись при попытке добавить PPA с помощью команды sudo add-apt-repository
, заключается в зависании этой команды без вывода каких-либо ошибок. Этот вопрос может возникать по различным причинам, включая проблемы с сетевым подключением, настройки прокси, или даже проблемы с версией ПО. Ниже приведен детальный анализ ситуации с предоставлением решений.
Возможные Причины Проблемы
-
Проблемы с Сетевым Подключением: Если ваше устройство не может подключиться к интернету или к серверам Launchpad, команда будет висеть в ожидании ответа.
-
Настройки Прокси: Если ваша сеть использует прокси-сервер, и настройки прокси не корректны, команда также может зависать. Это особенно актуально для корпоративных сетей.
-
Недоступность PPA: Иногда, сам PPA может быть временно недоступен или удален, что может привести к подобному поведению.
-
Версия ПО: Устаревшие или несовместимые пакеты могут вызывать конфликты. В Ubuntu 19.04 могут быть некоторые несовместимости с Python-скриптами, используемыми командой
add-apt-repository
.
Шаги по Устранению Проблемы
-
Проверка Интернет-соединения:
- Убедитесь, что ваше устройство подключено к интернету. Попробуйте выполнить команду
ping -c 4 google.com
для проверки сетевого соединения.
- Убедитесь, что ваше устройство подключено к интернету. Попробуйте выполнить команду
-
Проверка Настроек Прокси:
- Если ваш интернет-трафик проходит через прокси, установите переменные окружения для прокси:
export http_proxy="http://username:password@proxyserver:port" export https_proxy="http://username:password@proxyserver:port"
- Также можно попробовать временно отключить прокси, если это возможно.
- Если ваш интернет-трафик проходит через прокси, установите переменные окружения для прокси:
-
Проверка Доступности PPA:
- Попробуйте посетить веб-сайт PPA в браузере, чтобы убедиться, что он доступен и существует.
-
Ручное Добавление PPA:
- Если
add-apt-repository
не работает, вы можете вручную добавить PPA и ключ. Для этого выполните следующие команды:sudo sh -c 'echo "deb http://ppa.launchpad.net/docky-core/ppa/ubuntu bionic main" >> /etc/apt/sources.list.d/docky-core-ppa.list' sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys YOUR-KEY-HERE sudo apt update
- Замените
YOUR-KEY-HERE
на нужный ключ. Его можно найти на странице PPA на Launchpad.
- Если
-
Поиск Альтернативных Решений:
- Если проблема сохраняется, можно поискать аналогичные проблемы на форумах или в сообществах пользователей Ubuntu. К примеру, одно из решений было предложено на сайте AskUbuntu, где пользователи сообщали о необходимости настройки прокси.
Заключение
Существует множество факторов, способствующих зависанию команды sudo add-apt-repository
. Рассматривая каждую из возможных причин и проверяя настройки, вы сможете устранить возникшую проблему. Иногда ручное добавление PPA может быть более эффективным решением. Надеюсь, что указанные шаги помогут вам в решении вашей проблемы. Если у вас останутся вопросы, не стесняйтесь задавать их.