Почему apt-get update не удается подключиться к dl.google.com?

Litteraly, придерживающийся вопроса (file1, file2, outputfile с сообщением «has changed»), скрипт ниже работает.

Скопируйте сценарий в пустой файл, сохраните его как compare.py, сделайте это исполняемый, запустите его командой:

/path/to/compare.py <file1> <file2> <outputfile>

Сценарий:

#!/usr/bin/env python

import sys
file1 = sys.argv[1]; file2 = sys.argv[2]; outfile = sys.argv[3]

def readfile(file):
    with open(file) as compare:
        return [item.replace("\n", "").split(" ") for item in compare.readlines()]

data1 = readfile(file1); data2 = readfile(file2)
mismatch = [item[0] for item in data1 if not item in data2]

with open(outfile, "wt") as out:
    for line in mismatch:
        out.write(line+" has changed"+"\n")

С помощью нескольких дополнительных строк вы можете сделать либо печать в выходной файл, либо терминал, в зависимости от того, установлен ли выходной файл:

Для печати в файл:

/path/to/compare.py <file1> <file2> <outputfile>

Для печати в окне терминала:

/path/to/compare.py <file1> <file2> 

Сценарий:

#!/usr/bin/env python

import sys

file1 = sys.argv[1]; file2 = sys.argv[2]
try:
    outfile = sys.argv[3]
except IndexError:
    outfile = None

def readfile(file):
    with open(file) as compare:
        return [item.replace("\n", "").split(" ") for item in compare.readlines()]

data1 = readfile(file1); data2 = readfile(file2)
mismatch = [item[0] for item in data1 if not item in data2]

if outfile != None:
        with open(outfile, "wt") as out:
            for line in mismatch:
                out.write(line+" has changed"+"\n")
else:
    for line in mismatch:
        print line+" has changed"
1
задан 4 January 2018 в 12:11

3 ответа

Когда у меня возникает эта проблема, я отключу IPv6 в Ubuntu и исправляю проблему, чтобы сделать это, выполните следующие действия:

Чтобы отключить IPv6, вам нужно открыть /etc/sysctl.conf, используя любой текстовый редактор и добавьте следующие строки в конец:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Если IPv6 все еще включен, проблема в том, что sysctl.conf все еще не активирована.

В этом (Ctrl + Alt + T) и введите команду:

sudo sysctl -p

Выход будет очень похож на эти 3 строки:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

После этого , execute:

$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6

Если вы видите 1 на выходе, то IPv6 был успешно отключен.

1

Надеюсь, что это поможет.

1
ответ дан 22 May 2018 в 15:48
  • 1
    Это полностью устранило мою аналогичную проблему. Mine - Ubuntu 16.04.3 LTS. – xiaobai 8 January 2018 в 08:58
  • 2
    Ницца! Рад это слышать. = D – galoget 8 January 2018 в 09:01
  • 3
    Рад узнать, что это сработало для вас @SiqingYu – galoget 12 January 2018 в 18:19
  • 4
    @galoget Привет, парень, я обнаружил, что отключение IPv6 замедляет скорость загрузки, поэтому я снова включил его. Есть ли обходной путь? – Siqing Yu 14 January 2018 в 12:11
  • 5
    @SiqingYu, я всегда использовал решение, размещенное здесь, вы можете попробовать это Использование IPv4 или IPv6 для apt , надеюсь, что это сработает. – galoget 14 January 2018 в 23:11

Когда у меня возникает эта проблема, я отключу IPv6 в Ubuntu и исправляю проблему, чтобы сделать это, выполните следующие действия:

Чтобы отключить IPv6, вам нужно открыть /etc/sysctl.conf, используя любой текстовый редактор и добавьте следующие строки в конец:

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1

Если IPv6 все еще включен, проблема в том, что sysctl.conf все еще не активирована.

В этом (Ctrl + Alt + T) и введите команду:

sudo sysctl -p

Выход будет очень похож на эти 3 строки:

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1

После этого , execute:

$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6

Если вы видите 1 на выходе, то IPv6 был успешно отключен.

1

Надеюсь, что это поможет.

1
ответ дан 18 July 2018 в 00:03

Когда у меня возникает эта проблема, я отключу IPv6 в Ubuntu и исправляю проблему, чтобы сделать это, выполните следующие действия:

Чтобы отключить IPv6, вам нужно открыть /etc/sysctl.conf, используя любой текстовый редактор и добавьте следующие строки в конец:

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1

Если IPv6 все еще включен, проблема в том, что sysctl.conf все еще не активирована.

В этом (Ctrl + Alt + T) и введите команду:

sudo sysctl -p

Выход будет очень похож на эти 3 строки:

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1

После этого , execute:

$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6

Если вы видите 1 на выходе, то IPv6 был успешно отключен.

1

Надеюсь, что это поможет.

1
ответ дан 24 July 2018 в 17:09

Другие вопросы по тегам:

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