добавить-apt-репозиторий ppa:openssh/openssh

Вопрос или проблема

$ sudo add-apt-repository ppa:openssh/openssh
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 1363, in _conn_request
    conn.connect()
  File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 1139, in connect
    address_info = socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM)
  File "/usr/lib/python3.10/socket.py", line 955, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -5] Нет адреса, связанного с именем хоста

Во время обработки вышеупомянутого исключения возникло другое исключение:

Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 364, in <module>
    sys.exit(0 if addaptrepo.main() else 1)
  File "/usr/bin/add-apt-repository", line 347, in main
    shortcut = handler(source, **shortcut_params)
  File "/usr/lib/python3/dist-packages/softwareproperties/shortcuts.py", line 40, in shortcut_handler
    return handler(shortcut, **kwargs)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 82, in __init__
    if self.lpppa.publish_debug_symbols:
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 120, in lpppa
    self._lpppa = self.lpteam.getPPAByName(name=self.ppaname)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 107, in lpteam
    self._lpteam = self.lp.people(self.teamname)
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 98, in lp
    self._lp = login_func("%s.%s" % (self.__module__, self.__class__.__name__),
  File "/usr/lib/python3/dist-packages/launchpadlib/launchpad.py", line 494, in login_anonymously
    return cls(
  File "/usr/lib/python3/dist-packages/launchpadlib/launchpad.py", line 230, in __init__
    super(Launchpad, self).__init__(
  File "/usr/lib/python3/dist-packages/lazr/restfulclient/resource.py", line 472, in __init__
    self._wadl = self._browser.get_wadl_application(self._root_uri)
  File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 447, in get_wadl_application
    response, content = self._request(url, media_type=wadl_type)
  File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 389, in _request
    response, content = self._request_and_retry(
  File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 359, in _request_and_retry
    response, content = self._connection.request(
  File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 1725, in request
    (response, content) = self._request(
  File "/usr/lib/python3/dist-packages/launchpadlib/launchpad.py", line 144, in _request
    response, content = super(LaunchpadOAuthAwareHttp, self)._request(
  File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 184, in _request
    return super(RestfulHttp, self)._request(
  File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 1441, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 1370, in _conn_request
    raise ServerNotFoundError("Не удается найти сервер по адресу %s" % conn.host)
httplib2.error.ServerNotFoundError: Не удается найти сервер по адресу api.launchpad.net

Не удается найти сервер по адресу api.launchpad.net

означает, что вы не можете разрешить адрес. Теперь может быть несколько причин, скорее всего, вы неправильно настроили что-то в ваших DNS-серверах или ваша сеть не настроена. Пожалуйста, проверьте вашу сетевую конфигурацию и убедитесь, что сетевая карта правильно настроена и активна.

Прежде всего, проверьте, какую сетевую карту вы используете:

nmcli device

Это должно показать как минимум две записи, одну для обратной петли и другую для сетевой карты, которую вы используете. Как только у вас будет название сетевой карты, вы можете проверить, какой DNS-сервер фактически настроен на этой карте, выполнив

nmcli device show <card-name>

В качестве примера, на моей системе:

nmcli device
DEVICE           TYPE      STATE                   CONNECTION      
enp0s3           ethernet  connected               netplan-enp0s3  
lo               loopback  connected (externally)  lo              
br-4873a3029be6  bridge    connected (externally)  br-4873a3029be6 
docker0          bridge    connected (externally)  docker0         

Здесь нас интересует карта enp0s3, так как lo является обратной петлей, а два других устройства являются виртуальными устройствами (одно — это мост к другой сети, другое — мост сети docker)

Теперь выберите имя и выполните:

nmcli device show enp0s3 

Вывод должен быть похожим на:

GENERAL.DEVICE:                         enp0s3
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:24:B2:9B
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     netplan-enp0s3
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         10.0.2.15/24
IP4.GATEWAY:                            10.0.2.2
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 10.0.2.2, mt = 100
IP4.ROUTE[2]:                           dst = 10.0.2.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             10.0.2.3
IP6.ADDRESS[1]:                         fd00::a00:27ff:fe24:b29b/64
IP6.ADDRESS[2]:                         fe80::a00:27ff:fe24:b29b/64
IP6.GATEWAY:                            fe80::2
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 256
IP6.ROUTE[2]:                           dst = ::/0, nh = fe80::2, mt = 1024
IP6.ROUTE[3]:                           dst = fd00::/64, nh = ::, mt = 256

Обратите внимание на IP4.DNS: он сообщает мне, что использует внутренний DNS (мой адрес 10.0.2.15, мой шлюз 10.0.2.2, это означает, что я нахожусь в подсети 10.0.2).

Если вы настроили свой маршрутизатор как DNS-сервер, у вас будет что-то подобное тому, что есть у меня (за исключением “сетевых номеров”). Очень распространено использовать публичные DNS-серверы, такие как те, которые представлены в этом списке

Если вы не можете понять информацию, которую видите, пожалуйста, предоставьте результаты команд, которые я предложил выше, и мы посмотрим, сможем ли помочь

Ответ или решение

Решение проблемы с добавлением PPA-репозитория OpenSSH

При попытке добавить PPA-репозиторий OpenSSH команда sudo add-apt-repository ppa:openssh/openssh завершилась неудачей с ошибкой, указывающей на невозможность разрешения хоста api.launchpad.net:

httplib2.error.ServerNotFoundError: Unable to find the server at api.launchpad.net

Причины ошибки

Ошибка ServerNotFoundError возникает в результате проблемы с сетью или неправильной конфигурации DNS. Это означает, что ваша система не может связаться с адресом, необходимым для загрузки информации о PPA. Основные причины могут включать:

  1. Проблемы с подключением к Интернету: Возможны отключения или неверные настройки сетевых интерфейсов.
  2. Неправильные настройки DNS: Если DNS-серверы не настроены правильно, система не сможет разрешить адреса хостов.
  3. Блокировка на уровне сети: Например, файрвол или настройки прокси могут препятствовать выходу в Интернет.

Шаги для устранения проблемы

1. Проверьте состояние сетевого подключения

Сначала убедитесь, что ваше устройство подключено к сети. Выполните команду:

nmcli device

Вы должны увидеть список сетевых интерфейсов и их статусов. Убедитесь, что один из интерфейсов (например, enp0s3) имеет состояние "connected".

2. Проверка состояния DNS-серверов

После того как определите рабочую сетевую карточку, выполните команду:

nmcli device show <имя_интерфейса>

Например:

nmcli device show enp0s3

Обратите внимание на строку IP4.DNS, которая указывает на используемый DNS-сервер. Убедитесь, что это корректный адрес. Если у вас нет доступа к DNS-серверам от вашего интернет-провайдера или роутера, рассмотрите возможность использования публичных DNS-серверов, таких как Google DNS (8.8.8.8) или Cloudflare DNS (1.1.1.1).

3. Настройка и изменение DNS-серверов

Если необходимо изменить DNS-серверы, это можно сделать с помощью команды для редактирования конфигурации сетевого менеджера:

sudo nano /etc/resolv.conf

Добавьте строки для новых DNS-серверов, например:

nameserver 8.8.8.8
nameserver 8.8.4.4

Закройте и сохраните файл.

4. Перезагрузка сетевых служб

Для применения изменений перезагрузите сетевые службы:

sudo systemctl restart NetworkManager

Или перезагрузите устройство.

5. Проверка маршрутизации

Также полезно проверить маршрутизацию. Выполните команду:

ip route

Убедитесь, что вы видите корректный маршрут по умолчанию (default via <gateway>), указывающий на ваш маршрутизатор.

6. Попытка повторного добавления PPA

После завершения всех вышеуказанных шагов снова выполните команду добавления PPA:

sudo add-apt-repository ppa:openssh/openssh

Заключение

Когда вы сталкиваетесь с проблемами добавления PPA-репозиториев, часто это связано с настройками сети или DNS. Следуя описанным шагам, вы сможете эффективно устранить ошибки и восстановить доступ к необходимым ресурсам. Если проблемы сохраняются, стоит обратиться за поддержкой к вашему интернет-провайдеру или системному администратору для глубокой диагностики сети.

Оцените материал
Добавить комментарий

Капча загружается...