wget загрузил имена файлов полным путем для использования с Кв. - добираются

Попытайтесь делать это:

exec bash

это добьется цели...

2
10.12.2013, 18:47
1 ответ

Простой подход

При использовании другой машины, та, которая подключена к Интернету, для обновления целевого компьютера, можно просто использовать то же sources.list файл на этих двух машинах, выполненных apt-get update и затем скопируйте списки пакета:

$ sudo mv /etc/apt/sources.list /etc/apt/sources.list.orig
$ sudo mv target_computer_sources.list /etc/apt/sources.list
$ sudo apt-get update

apt хранит его списки файла хранилища в /var/lib/apt/lists/, так afer выполнение команды выше, Вы бегунок копируют все в /var/lib/apt/lists/ к целевой машине и затем возвращаются к оригиналу sources.list:

$ sudo mv /etc/apt/sources.list.orig /etc/apt/sources.list 

Сложный путь

Я по любой причине, метод выше не работает на Вас, можно сделать это способ, которым Вы предлагали, просто необходимо проанализировать вывод apt-get update --print-uris. Следующее от моей системы LMDE, но идея является тем же:

$ sudo apt-get update --print-uris -y | head
'ftp://ftp.debian.org/debian/dists/testing/main/source/Sources.bz2' ftp.debian.org_debian_dists_testing_main_source_Sources 0 :
'ftp://ftp.debian.org/debian/dists/testing/contrib/source/Sources.bz2' ftp.debian.org_debian_dists_testing_contrib_source_Sources 0 :
'ftp://ftp.debian.org/debian/dists/testing/non-free/source/Sources.bz2' ftp.debian.org_debian_dists_testing_non-free_source_Sources 0 :
'ftp://ftp.debian.org/debian/dists/testing/InRelease' ftp.debian.org_debian_dists_testing_InRelease 0 
'http://packages.linuxmint.com/dists/debian/main/source/Sources.bz2' packages.linuxmint.com_dists_debian_main_source_Sources 0 :
'http://packages.linuxmint.com/dists/debian/upstream/source/Sources.bz2' packages.linuxmint.com_dists_debian_upstream_source_Sources 0 :
'http://packages.linuxmint.com/dists/debian/import/source/Sources.bz2' packages.linuxmint.com_dists_debian_import_source_Sources 0 :
'http://packages.linuxmint.com/dists/debian/main/binary-amd64/Packages.bz2' packages.linuxmint.com_dists_debian_main_binary-amd64_Packages 0 :
'http://packages.linuxmint.com/dists/debian/upstream/binary-amd64/Packages.bz2' packages.linuxmint.com_dists_debian_upstream_binary-amd64_Packages 0 :
'http://packages.linuxmint.com/dists/debian/import/binary-amd64/Packages.bz2' packages.linuxmint.com_dists_debian_import_binary-amd64_Packages 0 :

В выводе выше, 1-м полем является URL, и 2-м является имя, под которым будет сохранен файл. Поскольку я упомянул прежде, apt хранит его списки файла хранилища в /var/lib/apt/lists/, можно проверить это путем выполнения locate на одном из 2-х полей выше:

$ locate packages.linuxmint.com_dists_debian_main_source_Sources
/var/lib/apt/lists/packages.linuxmint.com_dists_debian_main_source_Sources

Так, если Вы захотите загрузить и обновить каждый из тех списков, то необходимо будет проанализировать вывод apt-get update --print-uris и скажите wget использовать 2-е поле в качестве выходного имени:

$ sudo apt-get update --print-uris -y | sed "s/'//g" | cut -d ' ' -f 1,2 | 
   while read url target; do wget $url -O ./$target; done 

Это загрузит каждый список пакета и сохранит его в текущем каталоге с помощью соответствующего имени. Можно теперь скопировать эти файлы в /var/lib/apt/lists/ каталог целевой машины.

3
27.01.2020, 22:06
  • 1
    Точно, это - шаг, который я смог сделать. То, что я не могу сделать, обновить список пакета. Это необходимо для проверки на обновления. Предположим актуальная система, которая выведена из эксплуатации (не, завершают работу), и после недели, которую я хочу знать, имеет ли она пакеты для обновления. Чтобы сделать это, я должен обновить список packahes (который мне не удается сделать), и затем выполните обновление (я не сделал никакого обновления, но я мог установить новые пакеты, как Вы описали, таким образом, это должно быть тем же). У меня есть проблемы при обновлении списка пакета. –  Javier Mr 11.12.2013, 00:07
  • 2
    @JavierMr видит обновленный ответ. –  terdon♦ 11.12.2013, 01:21
  • 3
    Почему потребность быть оба sources.list идентичными файлами?, я думал, что красота этого метода состояла в том, что машина с интернет-соединением не должна быть тем же дистрибутивом (или даже ОС), потому что офлайновая машина генерировала URL, которые будут загружены. –  Javier Mr 11.12.2013, 10:22
  • 4
    @JavierMr это правда для загрузки пакетов, если Вы хотите обновить источники целевой машины от подключенной машины, затем связанная, должен иметь те же источники. Иначе Вы будете обновлять неправильные списки. А-ч –  terdon♦ 12.12.2013, 05:49
  • 5
    я все еще не вижу почему. Я имею в виду, офлайновая машина генерировала URL, которые будут загружены, подключенная машина, загруженная .bz2 файлы (так же, как офлайновая машина сделала бы, если она могла), если затем те файлы извлечены и помещены в офлайновую машину в корректном месте, почему она не должна работать?. Я не добираюсь, 'Вы будете обновлять неправильные списки'. Так или иначе Вы отвечаете, действительно решал заголовок вопроса, обновление списка пакета вне объема, таким образом, я принял ответ.Спасибо. –  Javier Mr 12.12.2013, 09:20

Теги

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