Предотвратите Zypper, пытающийся использовать IPv6

Реализация GNU ls команда (который Вы используете, так как Вы запускаете Linux) найдет все файлы в текущем каталоге, запускающемся с символа a-g.

ls --ignore='[!a-g]*'

Это говорит для игнорирования всех файлов, которые не запускаются с символа в диапазоне [a-g]. ! инвертирует фильтр. * указать

Следующий запуск вывод через wc -l считать строки.

Полная команда таким образом будет:

ls --ignore='[!a-g]*' | wc -l

Это решение не будет повторяться в подкаталоги.

1
13.04.2017, 15:36
3 ответа

Кажется на выполнение правильных вещей убить IPv6 с точки зрения ядра но я мог бы также - предположение, что Вы не заботитесь о IPv6 - удаляют любые записи IPv6 в/etc/hosts. Если это все еще не добивается цели (и это уходит назад), у меня была проблема с резервным копированием Amanda, после того как это было очень похоже на Вашу проблему и только смогло зафиксировать ее путем установки xinetd вместо inetutils-inetd (обратите внимание, что я понятия не имею what's.u. S.E. устанавливает по умолчанию). Наконец (и как мера по отчаянию) я мог бы предложить использовать "strace" с чем-то как: strace-s 1024-f-o /tmp/zypper.log/path/to/zypperexecutable и затем проходит файл журнала, ища что адрес IPv6, и видящий, существует ли что-либо информативное, которое могло бы быть полезно. (К вашему сведению "strace" может генерировать ОГРОМНЫЙ файл, таким образом, Вы, вероятно, хотите прервать застежку-молнию, как только это перестало работать.)

2
27.01.2020, 23:38

После предложения user995746, Я пытался работать strace. Вот то, что это должно сказать:

...
1179  socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 5
1179  connect(5, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "2001:67c:2178:8::13", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network is unreachable)
1179  close(5)                          = 0
1179  madvise(0x7ff48750c000, 8368128, MADV_DONTNEED) = 0
1179  _exit(0)                          = ?
1179  +++ exited with 0 +++
1177  <... poll resumed> )              = 0 (Timeout)
1177  socket(PF_INET, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_TCP) = 5
1177  fcntl(5, F_GETFL)                 = 0x2 (flags O_RDWR)
1177  fcntl(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0
1177  connect(5, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("195.135.221.134")}, 16) = -1 EINPROGRESS (Operation now in progress)
1177  poll([{fd=5, events=POLLOUT|POLLWRNORM}], 1, 0) = 0 (Timeout)
1177  poll([{fd=5, events=POLLOUT}], 1, 1000) = 0 (Timeout)
1177  poll([{fd=5, events=POLLOUT|POLLWRNORM}], 1, 0) = 0 (Timeout)
1177  poll([{fd=5, events=POLLOUT}], 1, 1000) = 0 (Timeout)
1177  poll([{fd=5, events=POLLOUT|POLLWRNORM}], 1, 0) = 0 (Timeout)
1177  poll([{fd=5, events=POLLOUT}], 1, 1000) = 0 (Timeout)
1177  poll([{fd=5, events=POLLOUT|POLLWRNORM}], 1, 0) = 0 (Timeout)
1177  poll([{fd=5, events=POLLOUT}], 1, 1000) = 0 (Timeout)
1177  poll([{fd=5, events=POLLOUT|POLLWRNORM}], 1, 0) = 0 (Timeout)
1177  poll([{fd=5, events=POLLOUT}], 1, 1000) = 0 (Timeout)
1177  poll([{fd=5, events=POLLOUT|POLLWRNORM}], 1, 0) = 0 (Timeout)
1177  poll([{fd=5, events=POLLOUT}], 1, 1000) = 0 (Timeout)
1177  poll([{fd=5, events=POLLOUT|POLLWRNORM}], 1, 0) = 0 (Timeout)
1177  poll([{fd=5, events=POLLOUT}], 1, 1000) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
1177  --- SIGINT {si_signo=SIGINT, si_code=SI_KERNEL} ---
...

Кажется, затем, это даже при том, что в сообщении об ошибке от Zypper вполне ясно говорится "Отказавший для соединения с 2001:67c:2178:8:: 13: Сеть недостижима", программа на самом деле видит, что IPv6 недостижим, и отступающий к IPv4. Вопрос остается, почему он не может соединиться через IPv4 - это - вероятно, своего рода проблема брандмауэра с нашей LAN.

Таким образом, кажется, что IPv6 не является проблемой вообще, это просто, что сообщение об ошибке от Zypper является очень вводящим в заблуждение.

0
27.01.2020, 23:38
  • 1
    я зарегистрировал ошибку против Zypper, и они сказали, что это - отказ всего Завихрения и нарастило его им. Таким образом, кто знает, возможно, это будет зафиксировано когда-нибудь? –  MathematicalOrchid 17.02.2014, 13:25
  • 2
    Было бы более полезным, если Вы связались с ошибкой, Вы зарегистрировали. –  Adam Spiers 26.04.2016, 17:39

Разрешение download.opensuse.org (или любого другого сервера d / l, который вы хотите использовать) и последующая передача его IPv4-адреса в файл (ы) .repo сделали это за меня. Я использовал sed (1) для поиска + замены всего там; работал как шарм.

Не идеально, конечно; и невозможность вернуться к работающему (!) соединению v4 ... менее чем звездно. Неважно, что любое другое приложение с поддержкой двойного стека вполне способно (и может) получить доступ, скажем, к download.opensuse.org , когда есть локальная сеть v6, которая не маршрутизируется (потому что г-н Интернет-провайдер не не подыгрываю, например).

До этого времени используйте только (числовые) IPv4-адреса.

Примечание: zypper использует libcurl, но не поддерживает $ HOME / .curlrc . Возможно, он будет учитывать глобальные файлы конфигурации curl или переменные среды. curl сам хочет -4 / - ipv4 , чтобы заставить ipv4.

Кроме того, если бы кто-то перекомпилировал сам libcurl без поддержки ipv6, а затем установил там точку zypper через ld.so.conf или что-то в этом роде, я бы подумал, что все должно работать так, как ожидалось.

0
27.01.2020, 23:38

Теги

Похожие вопросы