установка пакетов на удаленном Linux, не подключенном к Интернету [dубликат]

У меня есть друг, у которого есть компьютер, который не подключен к Интернету. Есть ли способ легко установить программное обеспечение офлайн?

239
задан 10 May 2014 в 23:29

52 ответа

Я предлагаю настроить Live CD и установить их.

Вы также можете загрузить файлы на , настроить Live CDs filename, но тогда вы должны обратить внимание на зависимости, тоже.

0
ответ дан 23 July 2018 в 21:43
  • 1
    (Первоначально это был ответ на несколько иной вопрос, который слился с этим.) – Jakob 12 July 2012 в 01:35
  • 2
    Время убийства – totti 22 May 2013 в 13:40

Это не совсем подробный ответ, но на высоком уровне вы можете:

получить желаемые .deb pkgs (и создать их список) (включить пакеты, от которых они зависят, установленный), создайте apt-архив, содержащий их, скопируйте apt-архив на CD или USB, вставьте CD или USB в целевую систему, настройте на целевую систему, чтобы включить компакт-диск или USB-apt-архив в качестве источника, установите пакеты из вашего списка с apt-get install (список pkgs)
0
ответ дан 23 July 2018 в 21:43

Я использую apt-get с параметром «-print-uris», чтобы сделать это.

Используйте sed, чтобы удалить лишние символы, добавленные к некоторым именам файлов (что-то вроде 3% 2a), и получить URL, имя файла и md5sum файлов. Используйте wget для загрузки файлов. Используйте md5sum, чтобы проверить, правильно ли загружены файлы.

Вы можете использовать это для создания сценария оболочки для Linux или Mac OS (замените «.cmd» в командах на .sh и выполните «chmod a + x (имя файла), чтобы добавить разрешение на выполнение скрипта) или командный файл Windows Command, и файл MD5Sum, чтобы убедиться, что файлы загружены правильно.

Команды

Создать скрипт:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > script.cmd

Примеры:

sudo apt-get install anjuta --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install-anjuta.cmd sudo apt-get upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > upgrade.cmd sudo apt-get dist-upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > dist-upgrade.cmd

Создать скрипт:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4 .\/\2/p" > md5sum.txt

Примеры:

sudo apt-get install anjuta --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4 .\/\2/p" > md5sum.txt sudo apt-get upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4 .\/\2/p" > md5sum.txt sudo apt-get dist-upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4 .\/\2/p" > md5sum.txt

Вам нужна md5sum для Windows, если вы используете эту операционную систему для загрузки файлов.

Создать скрипт для загрузки списков репозитория:

sudo apt-get update --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) :/wget -c \1 -O \2.bz2/p" > update.cmd

Проверка MD5 Sums

Вы можете добавить их к концам скриптов, чтобы проверить md5sum:

Linux:

md5sum --quiet -c md5sum.txt

Windows (использует старший md5sum, не поддерживает -quiet):

md5sum -c md5sum.txt

Чтобы автоматически добавить сценарий:

echo -e "md5sum -c md5sum.txt\npause" >> script.cmd

Установка файлов списка (команда обновления)

Запустите эти команды для e.

Вам нужно использовать bunzip2 для извлечения файлов списка репозитория:

bunzip2 *.bz2

Затем скопируйте в папку с листингами (текущая папка содержит только файлы списка):

sudo cp * /var/lib/apt/lists/

Выше комбинированный (текущая папка может содержать другие файлы):

for listfile in `ls *.bz2`; do bunzip2 $listfile; sudo cp ${listfile%.bz2} /var/lib/apt/lists/; done

Более быстрые загрузки

Если вы хотите быстрее загружать файлы, попробуйте использовать Axel .

Замените wget -c ... -O ... на axel ... -o ....

Иерархия папок (загрузка файлов с использованием Windows)

Обычно я создаю такую ​​папку:

apt-get / bin / msys-1.0.dll msys-intl-8.dll wget.exe msys-iconv-2.dll md5sum.exe libeay32.dll libintl3.dll libssl32.dll libiconv2.dll update / update .cmd md5sum.txt install / install-foo.cmd install-bar.cmd upgrade.cmd md5sum.txt

Затем измените wget в строках выше на ..\\bin\\wget.exe, md5sum на ..\\bin\\md5sum.exe и т. д.

Это приведет к разделению файлов * .deb и файлов списка в разные папки.

Обновление вашей системы

Загрузка на целевой компьютер, который использует Ubuntu Создайте скрипт для обновления Загрузите компьютер с подключением к Интернету Запустите update.sh (для Linux или Mac OS) или update.cmd (Windows) Вернитесь на целевой компьютер. Установите файлы списка. Создайте сценарий для обновления / dist-upgrade (добавьте md5sum). Вернитесь на компьютер с подключением к Интернету. Запустите upgrade.sh/dist-upgrade.sh (Linux или Mac OS) или upgrade.cmd / dist-upgrade.cmd (Windows) Вернитесь на целевой компьютер. Скопируйте * .deb файлы в кеш: sudo cp *.deb /var/cache/apt/archives/ Запуск: sudo apt-get upgrade или sudo apt-get dist-upgrade

Загрузить исполняемые файлы для Windows

Wget for Windows: http://gnuwin32.sourceforge.net/packages/ wget.htm

md5sum для Windows: http://gnuwin32.sourceforge.net/packages/wget.htm или http://www.etree.org/cgi-bin /counter.cgi/software/md5sum.exe

Вы также можете использовать те из http://www.etree.org/cgi-bin/counter.cgi/software/md5sum.exe , которые я использую. Вам понадобятся только wget.exe, md5sum.exe и необходимые общие библиотеки. Посмотрите раздел «Иерархия папок».

Примечания

apt-get / bin / msys-1.0.dll msys-intl-8.dll wget.exe msys-iconv -2.dll md5sum.exe libeay32.dll libintl3.dll libssl32.dll libiconv2.dll update / update.cmd md5sum.txt install / install-foo.cmd install-bar.cmd upgrade.cmd md5sum.txt Кому легко увидеть результаты команд, добавить строку «пауза» в конце скриптов, используя Windows. Я рекомендую создавать сценарии оболочки для обновления, обновления и установки пакетов, если вы часто используете эти команды.
27
ответ дан 23 July 2018 в 21:43
  • 1
    Можете ли вы создать простой gui для этого :) – Tachyons 22 July 2012 в 08:32
  • 2
    использование окон для этого кажется очень странным ... – Alex R 6 December 2012 в 17:50
  • 3
    Это также применимо к Linux (что на самом деле лучше, потому что вам не нужно устанавливать md5sum и wget). Часть Windows предназначена для тех, у кого нет компьютера Linux с подключением к Интернету, поэтому вы можете использовать его в интернет-кафе или другом компьютере, на котором есть только Windows. – Arnel A. Borja 10 December 2012 в 07:32
  • 4
    Опция -qq, похоже, подавляет весь вывод из apt-get update. Я полагаю, вы действительно не хотите этого варианта. – Ruslan 25 June 2018 в 17:59

В синаптике вы можете выбрать пакеты, которые вы хотите установить, и в первом меню есть возможность сгенерировать скрипт, который вы можете взять на другой компьютер и запустить там. Этот скрипт будет «wget» (т. Е. «Загрузить») все указанные вами пакеты (и их зависимости), которые вы запускаете на компьютере, имеющем доступ в Интернет.

После запуска у вас будут все файлы пакетов, необходимые для отсоединенного компьютера. Перенесите их на CD / USB-накопитель и установите их с помощью sudo dpkg -i *.deb.

16
ответ дан 23 July 2018 в 21:43
  • 1
    его хороший трюк, но 2 компьютера, чтобы сделать этот процесс? хммм – Suhaib 2 October 2012 в 19:23

Первое, что вы могли бы сделать до установки автономного пакета, - это обновить репозиторий / репозитории, которые вам нужны. Вы наверняка должны точно обновить основной репозиторий (бесплатно и официально поддерживаемое программное обеспечение).

Приложения, которые вы хотите установить, могут находиться в некоторых других репозиториях, таких как Main (бесплатная, но без официальной поддержки) или Ограниченный (несвободный, официально поддерживаемый) , или репозиторий Multiverse (несвободный, без официальной поддержки). Таким образом, вы можете захотеть и один или несколько из них.

Итак, первым шагом в этом процессе является создание обновленного автономного хранилища; затем сгенерируйте список «загрузить» и загрузите их, и, наконец, insatllation. Вот как это делается: source

Введите url: http://archive.ubuntu.com/ubuntu/dists/suiteCodename, где suiteCodename должен быть соответствующим образом подстроен, точнее сказать Ubuntu 12.04 (Precise Pangolin) [или утопическим для Ubuntu 14.10 (Utopic Unicorn)], чтобы теперь вы были в http://archive.ubuntu.com/ubuntu/dists/precise/ или в любом другом конкретном пакете, который у вас есть. Загрузите файлы Release, Release.gpg и содержимое - ????. Gz файл для вашей архитектуры (т. Е. Contents-i386.gz, предполагая, что вы - архитектура i386). Сохраните эти три файла в каталоге / папке, названной в честь вашего набораCodename (точное для Precise Pangolin). Затем вам нужно будет сделать следующее для каждого из репозиториев (среди Main, Universe, Restricted, Multiverse), которые вы хотите. а. перейдите в каталог целевого репозитория, например. основной, а затем в каталог архитектуры, например. binary-i386, чтобы вы попали в http://archive.ubuntu.com/ubuntu/dists/suiteCodename/repositoryName/binary-ver/ b. загрузите содержимое Packages.bz2, Packages.gz, отпустите и сохраните их в каталоге, названном именем repositoryName, например. main и поместите этот каталог в ранее созданный каталог SuiteCodename. с. повторите a. и b. для каждого из репозиториев, которые вы хотите. Наконец, у вас должна быть структура вроде этого: precise ├── Contents-i386.gz ├── main │   └── binary-i386 │   ├── Packages.bz2 │   ├── Packages.gz │   └── Release.txt ├── Release.gpg ├── Release.txt └── universe └── binary-i386 ├── Packages.bz2 ├── Packages.gz └── Release.txt (предполагая, что ваш suiteCodename = точный, архитектура - i386, и вам нужны основные и универсальные репозитории). Затем, после загрузки обновленных репозиториев, вы разместите загруженные файлы, правильную структуру (как показано выше) в каталоге целевого автономного компьютера. Сохраните структуру каталогов precise в папке с именем offlineRepository / dists / exact в вашем домашнем доме (~/offlineRepository/dists/precise) или где-либо еще (/home/offlineRepository/dists/precise с использованием sudo previleges в терминале или с файловым менеджером Nautilus, начатым с gksu nautilus; убедитесь, что у вас есть права для скопированной структуры). Затем ваша автономная информация о репозитории будет готова к использованию. Добавьте локальный репозиторий в список источников. С программным центром Ubuntu откройте «Редактировать» -> «Источники программного обеспечения ... -> Другое программное обеспечение ->« Добавить ... », а затем в поле для строки APT добавьте: deb file:///home/offlineRepository precise main universe и нажмите« Добавить источник ». Убедитесь, что вы изменили строку в отношении вашей директории / структуры файла и набора. Затем перезагрузите пакеты или запустите sudo apt-get update в терминале. Теперь с обновленными (и, возможно, недавно добавленными репозиториями) вы можете сбросить список URL-адресов для пакетов и зависимостей. Я беру следующую строку кода из одной из предыдущих сообщений askUbuntu: sudo apt-get install packageName --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt , например. для установки диспетчера пакетов Synaptic: sudo apt-get install synaptic --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt (Аналогичным образом вы также можете создавать списки обновлений.) Сгенерированный список можно использовать для загрузки пакета и всех зависимостей на онлайн-компьютере. Создайте сценарий для загрузки или использования списка для пакетной загрузки в некоторых менеджерах загрузки. (Также обратите внимание, что созданный текстовый файл использует окончание строки Unix / Linux и который вы можете захотеть изменить на Windows.) Раньше для этого было проще, когда Synaptic Package Manager был стандартным приложением в Ubuntu. Наконец, в целевой системе вы можете установить пакеты с помощью dpkg или любым другим способом.

Получение обновленной базы данных пакетов, включая обновления безопасности

Следующая структура, помимо приведенного выше объяснения, должна дать вам идею:

/opt/offlineRepoList/ └── dists ├── precise │   ├── Contents-i386.gz │   ├── main │   │   └── binary-i386 │   │   ├── Packages.bz2 │   │   ├── Packages.gz │   │   └── Release.txt │   ├── Release.gpg │   ├── Release.txt │   └── universe │   └── binary-i386 │   ├── Packages.bz2 │   ├── Packages.gz │   └── Release.txt ├── precise-security │   ├── Contents-i386.gz │   ├── main │   │   └── binary-i386 │   │   ├── Packages.bz2 │   │   ├── Packages.gz │   │   └── Release │   ├── Release │   ├── Release.gpg │   └── universe │   └── binary-i386 │   ├── Packages.bz2 │   ├── Packages.gz │   └── Release └── precise-updates ├── Contents-i386.gz ├── main │   └── binary-i386 │   ├── Packages.bz2 │   ├── Packages.gz │   └── Release ├── Release ├── Release.gpg └── universe └── binary-i386 ├── Packages.bz2 ├── Packages.gz └── Release [ ! D69]
2
ответ дан 23 July 2018 в 21:43

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

Вы можете получить всю Ubuntu OS через почту, заплатив за DVD. Точно так же вы можете попросить онлайн-друга отправить вам файлы DEB или даже исходные файлы для пакета, такого как VLC. Хотя это может стоить того, чтобы кто-то отправил полный DVD со всеми пакетами. Таким образом, вы можете установить его с этого DVD.

1
ответ дан 23 July 2018 в 21:43

Этот вопрос немного старый, поэтому ответ в это время может быть избыточным, но, возможно, вы также можете попробовать использовать dpkg-offline. Установите bzr, затем:

bzr branch lp:dpkg-offline

есть учебник и файл readme, включенные там.

Предполагая, что вы хотите установить git в систему Ubuntu 14.04 amd64, даже если ваша система например, 12.04 i386, вы можете:

загрузить изображение ubuntu-14.04-desktop-amd64.iso Run dpkg-offline ubuntu-14.04-desktop-amd64.iso git Вы получите tar.gz, который вы можете перенести в целевую систему, он будет содержать пакет семян (git) и все его зависимости. Он также включает вспомогательный скрипт для добавления локального репозитория, поэтому вы можете использовать apt-get для установки ваших пакетов.

dpkg-offline будет работать с любой версией рабочего стола Ubuntu с 10.04 и далее (я не тестировал старые версии, но они также должны работать) и с любой версией сервера Ubuntu начиная с 12.10. Он также должен работать с изображениями amd64, i386 и armhf независимо от архитектуры хоста. Опять же, я не тестировал с arm64 или powerpc / ppc64el, но они также могут работать.

Отказ от ответственности: я написал dpkg-offline.

0
ответ дан 23 July 2018 в 21:43
  • 1
    Это здорово, однако я думаю, что слишком сложно загружать весь дистрибутив, чтобы использовать скрипт, желая, чтобы он мог работать только с указанием необходимых пакетов и целевого дистрибутива – Javier López 12 June 2017 в 21:54

Быстрый хак

Быстрый взломать копию всех пакетов, которые вы загрузили для своей установки, на его машину (подробные инструкции здесь). Файлы .deb хранятся в файле /var/cache/apt/archives, затем на другом компьютере запускают Synaptic и выбирают File -> Add Package Downloaded и выполняют поиск в папке, вы помещали файлы и открывали их, принимали все (или устанавливали с терминала с помощью команды sudo dpkg -i DEB_PACKAGE_NAME) .

Synaptic Предполагается, что ваш менеджер пакетов не настроен на удаление пакетов сразу после установки. Он также предполагает, что вы используете ту же версию Ubuntu (10.10, 12.04 и т. Д.) И версию архитектуры (32b или 64b).

Репозиторий DVD

Если вам нужны последние исправления ошибок и исправления безопасности, ознакомьтесь с подробными инструкциями здесь , который охватывает создание собственного репозитория DVD.

55
ответ дан 23 July 2018 в 21:43
  • 1
    Если вы не можете запустить sudo apt-get update, это не сработает очень хорошо, все равно хорошая экономия времени при настройке новой системы :) – GM-Script-Writer-62850 30 April 2013 в 06:54
  • 2
    Согласованный, только что обновил два компьютера до 13,10 с 13,04. Первому пришлось скачать ~ 1.8Gb, скопировав содержимое /var/cache/apt/archives во второй, он просто загрузил ~ 250 Мб. Тем не менее вам нужно подключение для запуска установки. – Maxime R. 3 November 2013 в 00:16
  • 3
    apt-get update не требуется, если вы копируете /var/lib/apt/lists - этот каталог содержит информацию репозитория, загруженную с помощью apt-get update. – ignis 20 March 2014 в 03:21
  • 4
    Я скопировал свой .deb на мой usb из /var/cache/apt/archives. На другом компьютере я просто открыл USB-накопитель и дважды щелкнул значок .deb, который запустил графический интерфейс Ubuntu Software Updater. Легко pezy. – Jacksonkr 20 April 2016 в 06:30
  • 5
    @ jr0cket: Есть ли способ избежать пакетов в этой папке /var/cache/apt/archives, которые уже (встроенные) при установке Debian? ». Причина, по которой я прошу об этом, - это 4,8 ГБ, тоже большой для моего USB-накопителя, который составляет 4 ГБ. – justin 25 April 2016 в 12:07

Некоторые пакеты установлены на установочный USB-Stick. Я удалил network-manager и хочу установить его снова.

Таким образом, я получил палку, из которой я установил операционную систему (Lubuntu 17.10). Это /dev/sdb

Установите палку по пути (/tmp/mnt в моем случае)

mkdir /tmp/mnt sudo mount /dev/sdb1 /tmp/mnt

Затем я редактирую /etc/apt/sources.list, чтобы содержать только

deb file:///tmp/mnt/ main universe

Затем я

sudo apt-get update

И я могу установить network-manager.

Примечание: Это может быть не ответ на вопрос выше, а на вопрос, который я имел, когда смотрел этот.

0
ответ дан 23 July 2018 в 21:43
  • 1
    Вероятно, вы должны вернуться к sources.list, а затем восстановить его. – Chai T. Rex 17 November 2017 в 12:43

У меня есть небольшой скрипт python, который можно запустить в Windows, который анализирует веб-сайт пакета ubuntu, чтобы найти дерево зависимостей и загрузить все необходимые пакеты + выполнить проверку контрольной суммы.

Это может, очевидно, загрузить больше, чем

https://gist.github.com/Zitrax/2bad212a3b0571357e1b

Все загруженные пакеты могут быть установлены с помощью dpkg -i E pkg\*. Это позволяет избежать переустановки уже установленных пакетов.

Использование:

usage: ubuntu-deps.py [-h] [-a ARCH] [-r RELEASE] [-m MIRROR] [-f FALLBACK] [-d DIRECTORY] dep [dep ...] Download ubuntu dependencies positional arguments: dep The main/top package optional arguments: -h, --help show this help message and exit -a ARCH, --arch ARCH The architecture to use (default: amd64) -r RELEASE, --release RELEASE Ubuntu release (default: trusty) -m MIRROR, --mirror MIRROR Mirror to use for download (default: http://no.archive.ubuntu.com/) -f FALLBACK, --fallback FALLBACK Mirror to use when main mirror is not found (default: http://security.ubuntu.com/) -d DIRECTORY, --directory DIRECTORY Target directory (default: pkg)
1
ответ дан 23 July 2018 в 21:43

Первое, что вы могли бы сделать до установки автономного пакета, - это обновить репозиторий / репозитории, которые вам нужны. Вы наверняка должны точно обновить основной репозиторий (бесплатно и официально поддерживаемое программное обеспечение).

Приложения, которые вы хотите установить, могут находиться в некоторых других репозиториях, таких как Universe (бесплатная, но без официальной поддержки) или Ограниченные (без поддержки, официально поддерживаемые) или Multiverse (не- бесплатно, без официальной поддержки). Поэтому вы можете захотеть один или несколько из них.

Итак, первым шагом в этом процессе является создание обновленного автономного хранилища; затем сгенерируйте список «загрузить» и загрузите их, и, наконец, insatllation. Вот как это делается: source

  1. Введите url: http://archive.ubuntu.com/ubuntu/dists/suiteCodename где suiteCodename должен быть соответствующим образом подстроен, скажем, точный для Ubuntu 12.04 (Precise Pangolin) [или utopic для Ubuntu 14.10 (Utopic Unicorn)], d теперь находится в http://archive.ubuntu.com/ubuntu/dists/precise/ или любом другом, относящемся к вашему набору.
  2. Загрузите файлы Выпустите , Release.gpg и файл Содержание - ????. Gz для вашей архитектуры (т.е. Содержание-i386.gz , предполагая, что вы - архитектура i386). Сохраните эти три файла в каталоге / папке с именем suiteCodename (точным для Precise Pangolin).
  3. Затем вам нужно будет сделать следующее для каждого из репозиториев (среди Main, Universe, Restricted, Multiverse ). а. перейдите в каталог целевого репозитория, например. main , а затем в каталог архитектуры, например. binary-i386 , чтобы вы попали в http://archive.ubuntu.com/ubuntu/dists/suiteCodename/repositoryName/binary-????/ b , загрузите содержимое Packages.bz2, Packages.gz, Release и сохраните их в каталоге, названном после имени репозитория, например. main и поместите этот каталог в ранее созданный каталог suiteCodename . с. повторите a. и b. для каждого из репозиториев, которые вы хотите.
  4. Наконец, у вас должна быть структура вроде этого:
     precise
     ├── Contents-i386.gz
     ├── main
     │   └── binary-i386
     │       ├── Packages.bz2
     │       ├── Packages.gz
     │       └── Release.txt
     ├── Release.gpg
     ├── Release.txt
     └── universe
         └── binary-i386
             ├── Packages.bz2
             ├── Packages.gz
             └── Release.txt
    
    (предполагая, что ваш suiteCodename = точный, архитектура i386, и вам нужны основные и универсальные репозитории)
  5. Затем, после загрузки обновленных репозиториев, вы разместите загруженные файлы в соответствующей структуре (как показано выше) в каталоге целевого автономного компьютера. Сохраните структуру каталогов precise в папке с именем offlineRepository / dists / exact в вашем домашнем доме пользователя (~/offlineRepository/dists/precise) или где-либо еще (/home/offlineRepository/dists/precise с использованием sudo previleges в терминале или с файловым менеджером Nautilus началось с gksu nautilus, также убедитесь, что у вас есть права для скопированной структуры). Ваша автономная информация о репозитории будет готова к использованию.
  6. Добавьте локальный репозиторий в список источников . С помощью Ubuntu Software Center перейдите в Edit -> Software Sources ... -> Other Software -> Add ..., а затем в поле для строки APT добавьте: deb file:///home/offlineRepository precise main universe и нажмите Добавить источник . Убедитесь, что вы изменили строку в отношении вашей директории / структуры файла и набора. Затем перезагрузите пакеты или запустите sudo apt-get update в терминале. snap1 [/g25]
  7. Теперь с обновленными (и, возможно, недавно добавленными репозиториями) вы можете сбросить список URL-адресов для пакетов и зависимостей. Я беру следующую строку кода из одной из предыдущих сообщений askUbuntu:
    sudo apt-get install packageName --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    
    , например. для установки диспетчера пакетов Synaptic:
    sudo apt-get install synaptic --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    
    (Аналогичным образом вы также можете создавать списки обновлений.) Сгенерированный список можно использовать для загрузки пакета и всех зависимостей на онлайн-компьютере. Создайте сценарий для загрузки или использования списка для пакетной загрузки в некоторых менеджерах загрузки. (Также обратите внимание, что созданный текстовый файл использует окончание строки Unix / Linux и который вы можете захотеть изменить в Windows). Раньше для этого был более простой способ, когда Synaptic Package Manager был стандартным приложением в Ubuntu.
  8. Наконец, в целевой системе вы можете установить пакеты с помощью dpkg или любым другим способом.

Получение обновленной базы данных пакетов, включая обновления безопасности

Следующая структура, помимо приведенного выше объяснения, должна дать вам идею:

/opt/offlineRepoList/
└── dists
    ├── precise
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release.txt
    │   ├── Release.gpg
    │   ├── Release.txt
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release.txt
    ├── precise-security
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release
    │   ├── Release
    │   ├── Release.gpg
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release
    └── precise-updates
        ├── Contents-i386.gz
        ├── main
        │   └── binary-i386
        │       ├── Packages.bz2
        │       ├── Packages.gz
        │       └── Release
        ├── Release
        ├── Release.gpg
        └── universe
            └── binary-i386
                ├── Packages.bz2
                ├── Packages.gz
                └── Release
2
ответ дан 31 July 2018 в 19:26

Я использую apt-get с опцией «-print-uris», чтобы сделать это. Я также добавляю «-qq», поэтому было бы тихо.

Используйте sed, чтобы удалить лишние символы, добавленные к некоторым именам файлов (что-то вроде 3% 2a), и получить url, filename и md5sum файлов. Используйте wget для загрузки файлов. Используйте md5sum для проверки правильности загрузки файлов.

Вы можете использовать это для создания сценария оболочки для Linux или Mac OS (замените «.cmd» в командах на .sh и выполните «chmod a + x (имя файла), чтобы добавить разрешение на выполнение сценария) или командный файл Windows Command, и файл MD5Sum, чтобы убедиться, что файлы загружены правильно.

Команды

Создать скрипт:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > script.cmd

Примеры:

sudo apt-get install anjuta --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install-anjuta.cmd
sudo apt-get upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > upgrade.cmd
sudo apt-get dist-upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > dist-upgrade.cmd

Создать файл md5sum:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Примеры :

sudo apt-get install anjuta --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get dist-upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Вам нужна md5sum для Windows, если вы используете эту операционную систему для загрузки файлов.


Создайте скрипт для загрузки списков репозитория:

sudo apt-get update --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) :/wget -c \1 -O \2.bz2/p" > update.cmd

Проверка сумм MD5

Вы можете добавить их к концам скриптов, чтобы проверить md5sum:

Linux:

md5sum --quiet -c md5sum.txt

Windows (использует старший md5sum, не поддерживает -quiet):

md5sum -c md5sum.txt

Чтобы автоматически добавить сценарий:

echo -e "md5sum -c md5sum.txt\npause" >> script.cmd

Установка файлов списка (команда обновления )

Запустить эти команды в цель компьютер.

Вам нужно использовать bunzip2 для извлечения файлов списка репозитория:

bunzip2 *.bz2

Затем скопируйте в папку с листингами (текущая папка содержит только файлы списка):

sudo cp * /var/lib/apt/lists/

Выше комбинированный (текущая папка может содержать другие файлы):

for listfile in `ls *.bz2`; do bunzip2 $listfile; sudo cp ${listfile%.bz2} /var/lib/apt/lists/; done

Более быстрые загрузки

Если вы хотите ускорить загрузку файлов, попробуйте использовать Axel.

Замените wget -c ... -O ... на axel ... -o ....

Иерархия папок (загрузка файлов с использованием Windows)

Обычно я создаю такую ​​папку:

  • apt-get / bin / msys-1.0.dll msys-intl-8.dll wget.exe msys-iconv-2.dll md5sum.exe libeay32.dll libintl3.dll libssl32.dll libiconv2.dll update / update.cmd md5sum.txt install / install-foo.cmd install-bar.cmd upgrade.cmd md5sum.txt

Затем измените wget в строках выше на ..\\bin\\wget.exe, md5sum на ..\\bin\\md5sum.exe и т. д.

Это приведет к разделению файлов * .deb и файлов списка в разные папки.

Обновление вашей системы

  1. Загрузка на целевой компьютер, который использует U buntu
  2. Создайте скрипт для обновления
  3. Загрузите компьютер с подключением к Интернету
  4. Запустите update.sh (для Linux или Mac OS) или update.cmd (Windows)
  5. Вернуться к целевому компьютеру
  6. Установить файлы списка
  7. Создать скрипт для обновления / dist-upgrade (добавить команды md5sum в конец)
  8. Вернитесь к компьютеру с подключением к Интернету
  9. Запустите upgrade.sh/dist-upgrade.sh (Linux или Mac OS) или upgrade.cmd / dist-upgrade.cmd (Windows)
  10. Вернитесь к целевому компьютеру
  11. Скопируйте файлы * .deb в кеш: sudo cp *.deb /var/cache/apt/archives/
  12. Запуск: sudo apt-get upgrade или sudo apt-get dist-upgrade

Загрузить исполняемые файлы для Windows

Wget for Windows: http://gnuwin32.sourceforge.net/packages/wget.htm

md5sum для Windows: http://gnuwin32.sourceforge.net/packages/coreutils.htm или http://www.etree.org/cgi-bin/counter.cgi/software/md5sum .exe

Вы также можете использовать те из MinGW , которые я использую. Вам понадобятся только wget.exe, md5sum.exe и необходимые общие библиотеки. Посмотрите раздел «Иерархия папок».

Примечания

  • Я не совсем уверен, что все вышеприведенные команды будут работать, так как я не использовал их уже месяц , Особенно команда обновления, в которой я сегодня не тестировал некоторые ее части.
  • Чтобы легко увидеть результаты команд, добавьте строку «пауза» в конце скриптов, если используете Windows.
  • Я рекомендую создавать сценарии оболочки для обновления, обновления и установки пакетов, если вы часто используете эти команды.
27
ответ дан 31 July 2018 в 19:26

Первое, что вы могли бы сделать до установки автономного пакета, - это обновить репозиторий / репозитории, которые вам нужны. Вы наверняка должны точно обновить основной репозиторий (бесплатно и официально поддерживаемое программное обеспечение).

Приложения, которые вы хотите установить, могут находиться в некоторых других репозиториях, таких как Universe (бесплатная, но без официальной поддержки) или Ограниченные (без поддержки, официально поддерживаемые) или Multiverse (не- бесплатно, без официальной поддержки). Поэтому вы можете захотеть один или несколько из них.

Итак, первым шагом в этом процессе является создание обновленного автономного хранилища; затем сгенерируйте список «загрузить» и загрузите их, и, наконец, insatllation. Вот как это делается: source

  1. Введите url: http://archive.ubuntu.com/ubuntu/dists/suiteCodename где suiteCodename должен быть соответствующим образом подстроен, скажем, точный для Ubuntu 12.04 (Precise Pangolin) [или utopic для Ubuntu 14.10 (Utopic Unicorn)], d теперь находится в http://archive.ubuntu.com/ubuntu/dists/precise/ или любом другом, относящемся к вашему набору.
  2. Загрузите файлы Выпустите , Release.gpg и файл Содержание - ????. Gz для вашей архитектуры (т.е. Содержание-i386.gz , предполагая, что вы - архитектура i386). Сохраните эти три файла в каталоге / папке с именем suiteCodename (точным для Precise Pangolin).
  3. Затем вам нужно будет сделать следующее для каждого из репозиториев (среди Main, Universe, Restricted, Multiverse ). а. перейдите в каталог целевого репозитория, например. main , а затем в каталог архитектуры, например. binary-i386 , чтобы вы попали в http://archive.ubuntu.com/ubuntu/dists/suiteCodename/repositoryName/binary-????/ b , загрузите содержимое Packages.bz2, Packages.gz, Release и сохраните их в каталоге, названном после имени репозитория, например. main и поместите этот каталог в ранее созданный каталог suiteCodename . с. повторите a. и b. для каждого из репозиториев, которые вы хотите.
  4. Наконец, у вас должна быть структура вроде этого:
     precise
     ├── Contents-i386.gz
     ├── main
     │   └── binary-i386
     │       ├── Packages.bz2
     │       ├── Packages.gz
     │       └── Release.txt
     ├── Release.gpg
     ├── Release.txt
     └── universe
         └── binary-i386
             ├── Packages.bz2
             ├── Packages.gz
             └── Release.txt
    
    (предполагая, что ваш suiteCodename = точный, архитектура i386, и вам нужны основные и универсальные репозитории)
  5. Затем, после загрузки обновленных репозиториев, вы разместите загруженные файлы в соответствующей структуре (как показано выше) в каталоге целевого автономного компьютера. Сохраните структуру каталогов precise в папке с именем offlineRepository / dists / exact в вашем домашнем доме пользователя (~/offlineRepository/dists/precise) или где-либо еще (/home/offlineRepository/dists/precise с использованием sudo previleges в терминале или с файловым менеджером Nautilus началось с gksu nautilus, также убедитесь, что у вас есть права для скопированной структуры). Ваша автономная информация о репозитории будет готова к использованию.
  6. Добавьте локальный репозиторий в список источников . С помощью Ubuntu Software Center перейдите в Edit -> Software Sources ... -> Other Software -> Add ..., а затем в поле для строки APT добавьте: deb file:///home/offlineRepository precise main universe и нажмите Добавить источник . Убедитесь, что вы изменили строку в отношении вашей директории / структуры файла и набора. Затем перезагрузите пакеты или запустите sudo apt-get update в терминале. snap1 [/g25]
  7. Теперь с обновленными (и, возможно, недавно добавленными репозиториями) вы можете сбросить список URL-адресов для пакетов и зависимостей. Я беру следующую строку кода из одной из предыдущих сообщений askUbuntu:
    sudo apt-get install packageName --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    
    , например. для установки диспетчера пакетов Synaptic:
    sudo apt-get install synaptic --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    
    (Аналогичным образом вы также можете создавать списки обновлений.) Сгенерированный список можно использовать для загрузки пакета и всех зависимостей на онлайн-компьютере. Создайте сценарий для загрузки или использования списка для пакетной загрузки в некоторых менеджерах загрузки. (Также обратите внимание, что созданный текстовый файл использует окончание строки Unix / Linux и который вы можете захотеть изменить в Windows). Раньше для этого был более простой способ, когда Synaptic Package Manager был стандартным приложением в Ubuntu.
  8. Наконец, в целевой системе вы можете установить пакеты с помощью dpkg или любым другим способом.

Получение обновленной базы данных пакетов, включая обновления безопасности

Следующая структура, помимо приведенного выше объяснения, должна дать вам идею:

/opt/offlineRepoList/
└── dists
    ├── precise
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release.txt
    │   ├── Release.gpg
    │   ├── Release.txt
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release.txt
    ├── precise-security
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release
    │   ├── Release
    │   ├── Release.gpg
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release
    └── precise-updates
        ├── Contents-i386.gz
        ├── main
        │   └── binary-i386
        │       ├── Packages.bz2
        │       ├── Packages.gz
        │       └── Release
        ├── Release
        ├── Release.gpg
        └── universe
            └── binary-i386
                ├── Packages.bz2
                ├── Packages.gz
                └── Release
2
ответ дан 2 August 2018 в 12:29

Я использую apt-get с опцией «-print-uris», чтобы сделать это. Я также добавляю «-qq», поэтому было бы тихо.

Используйте sed, чтобы удалить лишние символы, добавленные к некоторым именам файлов (что-то вроде 3% 2a), и получить url, filename и md5sum файлов. Используйте wget для загрузки файлов. Используйте md5sum для проверки правильности загрузки файлов.

Вы можете использовать это для создания сценария оболочки для Linux или Mac OS (замените «.cmd» в командах на .sh и выполните «chmod a + x (имя файла), чтобы добавить разрешение на выполнение сценария) или командный файл Windows Command, и файл MD5Sum, чтобы убедиться, что файлы загружены правильно.

Команды

Создать скрипт:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > script.cmd

Примеры:

sudo apt-get install anjuta --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install-anjuta.cmd
sudo apt-get upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > upgrade.cmd
sudo apt-get dist-upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > dist-upgrade.cmd

Создать файл md5sum:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Примеры :

sudo apt-get install anjuta --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get dist-upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Вам нужна md5sum для Windows, если вы используете эту операционную систему для загрузки файлов.


Создайте скрипт для загрузки списков репозитория:

sudo apt-get update --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) :/wget -c \1 -O \2.bz2/p" > update.cmd

Проверка сумм MD5

Вы можете добавить их к концам скриптов, чтобы проверить md5sum:

Linux:

md5sum --quiet -c md5sum.txt

Windows (использует старший md5sum, не поддерживает -quiet):

md5sum -c md5sum.txt

Чтобы автоматически добавить сценарий:

echo -e "md5sum -c md5sum.txt\npause" >> script.cmd

Установка файлов списка (команда обновления )

Запустить эти команды в цель компьютер.

Вам нужно использовать bunzip2 для извлечения файлов списка репозитория:

bunzip2 *.bz2

Затем скопируйте в папку с листингами (текущая папка содержит только файлы списка):

sudo cp * /var/lib/apt/lists/

Выше комбинированный (текущая папка может содержать другие файлы):

for listfile in `ls *.bz2`; do bunzip2 $listfile; sudo cp ${listfile%.bz2} /var/lib/apt/lists/; done

Более быстрые загрузки

Если вы хотите ускорить загрузку файлов, попробуйте использовать Axel.

Замените wget -c ... -O ... на axel ... -o ....

Иерархия папок (загрузка файлов с использованием Windows)

Обычно я создаю такую ​​папку:

  • apt-get / bin / msys-1.0.dll msys-intl-8.dll wget.exe msys-iconv-2.dll md5sum.exe libeay32.dll libintl3.dll libssl32.dll libiconv2.dll update / update.cmd md5sum.txt install / install-foo.cmd install-bar.cmd upgrade.cmd md5sum.txt

Затем измените wget в строках выше на ..\\bin\\wget.exe, md5sum на ..\\bin\\md5sum.exe и т. д.

Это приведет к разделению файлов * .deb и файлов списка в разные папки.

Обновление вашей системы

  1. Загрузка на целевой компьютер, который использует U buntu
  2. Создайте скрипт для обновления
  3. Загрузите компьютер с подключением к Интернету
  4. Запустите update.sh (для Linux или Mac OS) или update.cmd (Windows)
  5. Вернуться к целевому компьютеру
  6. Установить файлы списка
  7. Создать скрипт для обновления / dist-upgrade (добавить команды md5sum в конец)
  8. Вернитесь к компьютеру с подключением к Интернету
  9. Запустите upgrade.sh/dist-upgrade.sh (Linux или Mac OS) или upgrade.cmd / dist-upgrade.cmd (Windows)
  10. Вернитесь к целевому компьютеру
  11. Скопируйте файлы * .deb в кеш: sudo cp *.deb /var/cache/apt/archives/
  12. Запуск: sudo apt-get upgrade или sudo apt-get dist-upgrade

Загрузить исполняемые файлы для Windows

Wget for Windows: http://gnuwin32.sourceforge.net/packages/wget.htm

md5sum для Windows: http://gnuwin32.sourceforge.net/packages/coreutils.htm или http://www.etree.org/cgi-bin/counter.cgi/software/md5sum .exe

Вы также можете использовать те из MinGW , которые я использую. Вам понадобятся только wget.exe, md5sum.exe и необходимые общие библиотеки. Посмотрите раздел «Иерархия папок».

Примечания

  • Я не совсем уверен, что все вышеприведенные команды будут работать, так как я не использовал их уже месяц , Особенно команда обновления, в которой я сегодня не тестировал некоторые ее части.
  • Чтобы легко увидеть результаты команд, добавьте строку «пауза» в конце скриптов, если используете Windows.
  • Я рекомендую создавать сценарии оболочки для обновления, обновления и установки пакетов, если вы часто используете эти команды.
27
ответ дан 2 August 2018 в 12:29

Первое, что вы могли бы сделать до установки автономного пакета, - это обновить репозиторий / репозитории, которые вам нужны. Вы наверняка должны точно обновить основной репозиторий (бесплатно и официально поддерживаемое программное обеспечение).

Приложения, которые вы хотите установить, могут находиться в некоторых других репозиториях, таких как Universe (бесплатная, но без официальной поддержки) или Ограниченные (без поддержки, официально поддерживаемые) или Multiverse (не- бесплатно, без официальной поддержки). Поэтому вы можете захотеть один или несколько из них.

Итак, первым шагом в этом процессе является создание обновленного автономного хранилища; затем сгенерируйте список «загрузить» и загрузите их, и, наконец, insatllation. Вот как это делается: source

  1. Введите url: http://archive.ubuntu.com/ubuntu/dists/suiteCodename где suiteCodename должен быть соответствующим образом подстроен, скажем, точный для Ubuntu 12.04 (Precise Pangolin) [или utopic для Ubuntu 14.10 (Utopic Unicorn)], d теперь находится в http://archive.ubuntu.com/ubuntu/dists/precise/ или любом другом, относящемся к вашему набору.
  2. Загрузите файлы Выпустите , Release.gpg и файл Содержание - ????. Gz для вашей архитектуры (т.е. Содержание-i386.gz , предполагая, что вы - архитектура i386). Сохраните эти три файла в каталоге / папке с именем suiteCodename (точным для Precise Pangolin).
  3. Затем вам нужно будет сделать следующее для каждого из репозиториев (среди Main, Universe, Restricted, Multiverse ). а. перейдите в каталог целевого репозитория, например. main , а затем в каталог архитектуры, например. binary-i386 , чтобы вы попали в http://archive.ubuntu.com/ubuntu/dists/suiteCodename/repositoryName/binary-????/ b , загрузите содержимое Packages.bz2, Packages.gz, Release и сохраните их в каталоге, названном после имени репозитория, например. main и поместите этот каталог в ранее созданный каталог suiteCodename . с. повторите a. и b. для каждого из репозиториев, которые вы хотите.
  4. Наконец, у вас должна быть структура вроде этого:
     precise
     ├── Contents-i386.gz
     ├── main
     │   └── binary-i386
     │       ├── Packages.bz2
     │       ├── Packages.gz
     │       └── Release.txt
     ├── Release.gpg
     ├── Release.txt
     └── universe
         └── binary-i386
             ├── Packages.bz2
             ├── Packages.gz
             └── Release.txt
    
    (предполагая, что ваш suiteCodename = точный, архитектура i386, и вам нужны основные и универсальные репозитории)
  5. Затем, после загрузки обновленных репозиториев, вы разместите загруженные файлы в соответствующей структуре (как показано выше) в каталоге целевого автономного компьютера. Сохраните структуру каталогов precise в папке с именем offlineRepository / dists / exact в вашем домашнем доме пользователя (~/offlineRepository/dists/precise) или где-либо еще (/home/offlineRepository/dists/precise с использованием sudo previleges в терминале или с файловым менеджером Nautilus началось с gksu nautilus, также убедитесь, что у вас есть права для скопированной структуры). Ваша автономная информация о репозитории будет готова к использованию.
  6. Добавьте локальный репозиторий в список источников . С помощью Ubuntu Software Center перейдите в Edit -> Software Sources ... -> Other Software -> Add ..., а затем в поле для строки APT добавьте: deb file:///home/offlineRepository precise main universe и нажмите Добавить источник . Убедитесь, что вы изменили строку в отношении вашей директории / структуры файла и набора. Затем перезагрузите пакеты или запустите sudo apt-get update в терминале. snap1 [/g25]
  7. Теперь с обновленными (и, возможно, недавно добавленными репозиториями) вы можете сбросить список URL-адресов для пакетов и зависимостей. Я беру следующую строку кода из одной из предыдущих сообщений askUbuntu:
    sudo apt-get install packageName --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    
    , например. для установки диспетчера пакетов Synaptic:
    sudo apt-get install synaptic --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    
    (Аналогичным образом вы также можете создавать списки обновлений.) Сгенерированный список можно использовать для загрузки пакета и всех зависимостей на онлайн-компьютере. Создайте сценарий для загрузки или использования списка для пакетной загрузки в некоторых менеджерах загрузки. (Также обратите внимание, что созданный текстовый файл использует окончание строки Unix / Linux и который вы можете захотеть изменить в Windows). Раньше для этого был более простой способ, когда Synaptic Package Manager был стандартным приложением в Ubuntu.
  8. Наконец, в целевой системе вы можете установить пакеты с помощью dpkg или любым другим способом.

Получение обновленной базы данных пакетов, включая обновления безопасности

Следующая структура, помимо приведенного выше объяснения, должна дать вам идею:

/opt/offlineRepoList/
└── dists
    ├── precise
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release.txt
    │   ├── Release.gpg
    │   ├── Release.txt
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release.txt
    ├── precise-security
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release
    │   ├── Release
    │   ├── Release.gpg
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release
    └── precise-updates
        ├── Contents-i386.gz
        ├── main
        │   └── binary-i386
        │       ├── Packages.bz2
        │       ├── Packages.gz
        │       └── Release
        ├── Release
        ├── Release.gpg
        └── universe
            └── binary-i386
                ├── Packages.bz2
                ├── Packages.gz
                └── Release
2
ответ дан 3 August 2018 в 16:50

Я использую apt-get с опцией «-print-uris», чтобы сделать это. Я также добавляю «-qq», поэтому было бы тихо.

Используйте sed, чтобы удалить лишние символы, добавленные к некоторым именам файлов (что-то вроде 3% 2a), и получить url, filename и md5sum файлов. Используйте wget для загрузки файлов. Используйте md5sum для проверки правильности загрузки файлов.

Вы можете использовать это для создания сценария оболочки для Linux или Mac OS (замените «.cmd» в командах на .sh и выполните «chmod a + x (имя файла), чтобы добавить разрешение на выполнение сценария) или командный файл Windows Command, и файл MD5Sum, чтобы убедиться, что файлы загружены правильно.

Команды

Создать скрипт:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > script.cmd

Примеры:

sudo apt-get install anjuta --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install-anjuta.cmd
sudo apt-get upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > upgrade.cmd
sudo apt-get dist-upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > dist-upgrade.cmd

Создать файл md5sum:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Примеры :

sudo apt-get install anjuta --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get dist-upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Вам нужна md5sum для Windows, если вы используете эту операционную систему для загрузки файлов.


Создайте скрипт для загрузки списков репозитория:

sudo apt-get update --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) :/wget -c \1 -O \2.bz2/p" > update.cmd

Проверка сумм MD5

Вы можете добавить их к концам скриптов, чтобы проверить md5sum:

Linux:

md5sum --quiet -c md5sum.txt

Windows (использует старший md5sum, не поддерживает -quiet):

md5sum -c md5sum.txt

Чтобы автоматически добавить сценарий:

echo -e "md5sum -c md5sum.txt\npause" >> script.cmd

Установка файлов списка (команда обновления )

Запустить эти команды в цель компьютер.

Вам нужно использовать bunzip2 для извлечения файлов списка репозитория:

bunzip2 *.bz2

Затем скопируйте в папку с листингами (текущая папка содержит только файлы списка):

sudo cp * /var/lib/apt/lists/

Выше комбинированный (текущая папка может содержать другие файлы):

for listfile in `ls *.bz2`; do bunzip2 $listfile; sudo cp ${listfile%.bz2} /var/lib/apt/lists/; done

Более быстрые загрузки

Если вы хотите ускорить загрузку файлов, попробуйте использовать Axel.

Замените wget -c ... -O ... на axel ... -o ....

Иерархия папок (загрузка файлов с использованием Windows)

Обычно я создаю такую ​​папку:

  • apt-get / bin / msys-1.0.dll msys-intl-8.dll wget.exe msys-iconv-2.dll md5sum.exe libeay32.dll libintl3.dll libssl32.dll libiconv2.dll update / update.cmd md5sum.txt install / install-foo.cmd install-bar.cmd upgrade.cmd md5sum.txt

Затем измените wget в строках выше на ..\\bin\\wget.exe, md5sum на ..\\bin\\md5sum.exe и т. д.

Это приведет к разделению файлов * .deb и файлов списка в разные папки.

Обновление вашей системы

  1. Загрузка на целевой компьютер, который использует U buntu
  2. Создайте скрипт для обновления
  3. Загрузите компьютер с подключением к Интернету
  4. Запустите update.sh (для Linux или Mac OS) или update.cmd (Windows)
  5. Вернуться к целевому компьютеру
  6. Установить файлы списка
  7. Создать скрипт для обновления / dist-upgrade (добавить команды md5sum в конец)
  8. Вернитесь к компьютеру с подключением к Интернету
  9. Запустите upgrade.sh/dist-upgrade.sh (Linux или Mac OS) или upgrade.cmd / dist-upgrade.cmd (Windows)
  10. Вернитесь к целевому компьютеру
  11. Скопируйте файлы * .deb в кеш: sudo cp *.deb /var/cache/apt/archives/
  12. Запуск: sudo apt-get upgrade или sudo apt-get dist-upgrade

Загрузить исполняемые файлы для Windows

Wget for Windows: http://gnuwin32.sourceforge.net/packages/wget.htm

md5sum для Windows: http://gnuwin32.sourceforge.net/packages/coreutils.htm или http://www.etree.org/cgi-bin/counter.cgi/software/md5sum .exe

Вы также можете использовать те из MinGW , которые я использую. Вам понадобятся только wget.exe, md5sum.exe и необходимые общие библиотеки. Посмотрите раздел «Иерархия папок».

Примечания

  • Я не совсем уверен, что все вышеприведенные команды будут работать, так как я не использовал их уже месяц , Особенно команда обновления, в которой я сегодня не тестировал некоторые ее части.
  • Чтобы легко увидеть результаты команд, добавьте строку «пауза» в конце скриптов, если используете Windows.
  • Я рекомендую создавать сценарии оболочки для обновления, обновления и установки пакетов, если вы часто используете эти команды.
27
ответ дан 3 August 2018 в 16:50

Первое, что вы могли бы сделать до установки автономного пакета, - это обновить репозиторий / репозитории, которые вам нужны. Вы наверняка должны точно обновить основной репозиторий (бесплатно и официально поддерживаемое программное обеспечение).

Приложения, которые вы хотите установить, могут находиться в некоторых других репозиториях, таких как Universe (бесплатная, но без официальной поддержки) или Ограниченные (без поддержки, официально поддерживаемые) или Multiverse (не- бесплатно, без официальной поддержки). Поэтому вы можете захотеть один или несколько из них.

Итак, первым шагом в этом процессе является создание обновленного автономного хранилища; затем сгенерируйте список «загрузить» и загрузите их, и, наконец, insatllation. Вот как это делается: source

  1. Введите url: http://archive.ubuntu.com/ubuntu/dists/suiteCodename где suiteCodename должен быть соответствующим образом подстроен, скажем, точный для Ubuntu 12.04 (Precise Pangolin) [или utopic для Ubuntu 14.10 (Utopic Unicorn)], d теперь находится в http://archive.ubuntu.com/ubuntu/dists/precise/ или любом другом, относящемся к вашему набору.
  2. Загрузите файлы Выпустите , Release.gpg и файл Содержание - ????. Gz для вашей архитектуры (т.е. Содержание-i386.gz , предполагая, что вы - архитектура i386). Сохраните эти три файла в каталоге / папке с именем suiteCodename (точным для Precise Pangolin).
  3. Затем вам нужно будет сделать следующее для каждого из репозиториев (среди Main, Universe, Restricted, Multiverse ). а. перейдите в каталог целевого репозитория, например. main , а затем в каталог архитектуры, например. binary-i386 , чтобы вы попали в http://archive.ubuntu.com/ubuntu/dists/suiteCodename/repositoryName/binary-????/ b , загрузите содержимое Packages.bz2, Packages.gz, Release и сохраните их в каталоге, названном после имени репозитория, например. main и поместите этот каталог в ранее созданный каталог suiteCodename . с. повторите a. и b. для каждого из репозиториев, которые вы хотите.
  4. Наконец, у вас должна быть структура вроде этого:
     precise
     ├── Contents-i386.gz
     ├── main
     │   └── binary-i386
     │       ├── Packages.bz2
     │       ├── Packages.gz
     │       └── Release.txt
     ├── Release.gpg
     ├── Release.txt
     └── universe
         └── binary-i386
             ├── Packages.bz2
             ├── Packages.gz
             └── Release.txt
    
    (предполагая, что ваш suiteCodename = точный, архитектура i386, и вам нужны основные и универсальные репозитории)
  5. Затем, после загрузки обновленных репозиториев, вы разместите загруженные файлы в соответствующей структуре (как показано выше) в каталоге целевого автономного компьютера. Сохраните структуру каталогов precise в папке с именем offlineRepository / dists / exact в вашем домашнем доме пользователя (~/offlineRepository/dists/precise) или где-либо еще (/home/offlineRepository/dists/precise с использованием sudo previleges в терминале или с файловым менеджером Nautilus началось с gksu nautilus, также убедитесь, что у вас есть права для скопированной структуры). Ваша автономная информация о репозитории будет готова к использованию.
  6. Добавьте локальный репозиторий в список источников . С помощью Ubuntu Software Center перейдите в Edit -> Software Sources ... -> Other Software -> Add ..., а затем в поле для строки APT добавьте: deb file:///home/offlineRepository precise main universe и нажмите Добавить источник . Убедитесь, что вы изменили строку в отношении вашей директории / структуры файла и набора. Затем перезагрузите пакеты или запустите sudo apt-get update в терминале. snap1 [/g25]
  7. Теперь с обновленными (и, возможно, недавно добавленными репозиториями) вы можете сбросить список URL-адресов для пакетов и зависимостей. Я беру следующую строку кода из одной из предыдущих сообщений askUbuntu:
    sudo apt-get install packageName --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    
    , например. для установки диспетчера пакетов Synaptic:
    sudo apt-get install synaptic --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    
    (Аналогичным образом вы также можете создавать списки обновлений.) Сгенерированный список можно использовать для загрузки пакета и всех зависимостей на онлайн-компьютере. Создайте сценарий для загрузки или использования списка для пакетной загрузки в некоторых менеджерах загрузки. (Также обратите внимание, что созданный текстовый файл использует окончание строки Unix / Linux и который вы можете захотеть изменить в Windows). Раньше для этого был более простой способ, когда Synaptic Package Manager был стандартным приложением в Ubuntu.
  8. Наконец, в целевой системе вы можете установить пакеты с помощью dpkg или любым другим способом.

Получение обновленной базы данных пакетов, включая обновления безопасности

Следующая структура, помимо приведенного выше объяснения, должна дать вам идею:

/opt/offlineRepoList/
└── dists
    ├── precise
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release.txt
    │   ├── Release.gpg
    │   ├── Release.txt
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release.txt
    ├── precise-security
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release
    │   ├── Release
    │   ├── Release.gpg
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release
    └── precise-updates
        ├── Contents-i386.gz
        ├── main
        │   └── binary-i386
        │       ├── Packages.bz2
        │       ├── Packages.gz
        │       └── Release
        ├── Release
        ├── Release.gpg
        └── universe
            └── binary-i386
                ├── Packages.bz2
                ├── Packages.gz
                └── Release
2
ответ дан 5 August 2018 в 02:11

Я использую apt-get с опцией «-print-uris», чтобы сделать это. Я также добавляю «-qq», поэтому было бы тихо.

Используйте sed, чтобы удалить лишние символы, добавленные к некоторым именам файлов (что-то вроде 3% 2a), и получить url, filename и md5sum файлов. Используйте wget для загрузки файлов. Используйте md5sum для проверки правильности загрузки файлов.

Вы можете использовать это для создания сценария оболочки для Linux или Mac OS (замените «.cmd» в командах на .sh и выполните «chmod a + x (имя файла), чтобы добавить разрешение на выполнение сценария) или командный файл Windows Command, и файл MD5Sum, чтобы убедиться, что файлы загружены правильно.

Команды

Создать скрипт:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > script.cmd

Примеры:

sudo apt-get install anjuta --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install-anjuta.cmd
sudo apt-get upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > upgrade.cmd
sudo apt-get dist-upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > dist-upgrade.cmd

Создать файл md5sum:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Примеры :

sudo apt-get install anjuta --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get dist-upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Вам нужна md5sum для Windows, если вы используете эту операционную систему для загрузки файлов.


Создайте скрипт для загрузки списков репозитория:

sudo apt-get update --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) :/wget -c \1 -O \2.bz2/p" > update.cmd

Проверка сумм MD5

Вы можете добавить их к концам скриптов, чтобы проверить md5sum:

Linux:

md5sum --quiet -c md5sum.txt

Windows (использует старший md5sum, не поддерживает -quiet):

md5sum -c md5sum.txt

Чтобы автоматически добавить сценарий:

echo -e "md5sum -c md5sum.txt\npause" >> script.cmd

Установка файлов списка (команда обновления )

Запустить эти команды в цель компьютер.

Вам нужно использовать bunzip2 для извлечения файлов списка репозитория:

bunzip2 *.bz2

Затем скопируйте в папку с листингами (текущая папка содержит только файлы списка):

sudo cp * /var/lib/apt/lists/

Выше комбинированный (текущая папка может содержать другие файлы):

for listfile in `ls *.bz2`; do bunzip2 $listfile; sudo cp ${listfile%.bz2} /var/lib/apt/lists/; done

Более быстрые загрузки

Если вы хотите ускорить загрузку файлов, попробуйте использовать Axel.

Замените wget -c ... -O ... на axel ... -o ....

Иерархия папок (загрузка файлов с использованием Windows)

Обычно я создаю такую ​​папку:

  • apt-get / bin / msys-1.0.dll msys-intl-8.dll wget.exe msys-iconv-2.dll md5sum.exe libeay32.dll libintl3.dll libssl32.dll libiconv2.dll update / update.cmd md5sum.txt install / install-foo.cmd install-bar.cmd upgrade.cmd md5sum.txt

Затем измените wget в строках выше на ..\\bin\\wget.exe, md5sum на ..\\bin\\md5sum.exe и т. д.

Это приведет к разделению файлов * .deb и файлов списка в разные папки.

Обновление вашей системы

  1. Загрузка на целевой компьютер, который использует U buntu
  2. Создайте скрипт для обновления
  3. Загрузите компьютер с подключением к Интернету
  4. Запустите update.sh (для Linux или Mac OS) или update.cmd (Windows)
  5. Вернуться к целевому компьютеру
  6. Установить файлы списка
  7. Создать скрипт для обновления / dist-upgrade (добавить команды md5sum в конец)
  8. Вернитесь к компьютеру с подключением к Интернету
  9. Запустите upgrade.sh/dist-upgrade.sh (Linux или Mac OS) или upgrade.cmd / dist-upgrade.cmd (Windows)
  10. Вернитесь к целевому компьютеру
  11. Скопируйте файлы * .deb в кеш: sudo cp *.deb /var/cache/apt/archives/
  12. Запуск: sudo apt-get upgrade или sudo apt-get dist-upgrade

Загрузить исполняемые файлы для Windows

Wget for Windows: http://gnuwin32.sourceforge.net/packages/wget.htm

md5sum для Windows: http://gnuwin32.sourceforge.net/packages/coreutils.htm или http://www.etree.org/cgi-bin/counter.cgi/software/md5sum .exe

Вы также можете использовать те из MinGW , которые я использую. Вам понадобятся только wget.exe, md5sum.exe и необходимые общие библиотеки. Посмотрите раздел «Иерархия папок».

Примечания

  • Я не совсем уверен, что все вышеприведенные команды будут работать, так как я не использовал их уже месяц , Особенно команда обновления, в которой я сегодня не тестировал некоторые ее части.
  • Чтобы легко увидеть результаты команд, добавьте строку «пауза» в конце скриптов, если используете Windows.
  • Я рекомендую создавать сценарии оболочки для обновления, обновления и установки пакетов, если вы часто используете эти команды.
27
ответ дан 5 August 2018 в 02:11

Первое, что вы могли бы сделать до установки автономного пакета, - это обновить репозиторий / репозитории, которые вам нужны. Вы наверняка должны точно обновить основной репозиторий (бесплатно и официально поддерживаемое программное обеспечение).

Приложения, которые вы хотите установить, могут находиться в некоторых других репозиториях, таких как Universe (бесплатная, но без официальной поддержки) или Ограниченные (без поддержки, официально поддерживаемые) или Multiverse (не- бесплатно, без официальной поддержки). Поэтому вы можете захотеть один или несколько из них.

Итак, первым шагом в этом процессе является создание обновленного автономного хранилища; затем сгенерируйте список «загрузить» и загрузите их, и, наконец, insatllation. Вот как это делается: source

  1. Введите url: http://archive.ubuntu.com/ubuntu/dists/suiteCodename где suiteCodename должен быть соответствующим образом подстроен, скажем, точный для Ubuntu 12.04 (Precise Pangolin) [или utopic для Ubuntu 14.10 (Utopic Unicorn)], d теперь находится в http://archive.ubuntu.com/ubuntu/dists/precise/ или любом другом, относящемся к вашему набору.
  2. Загрузите файлы Выпустите , Release.gpg и файл Содержание - ????. Gz для вашей архитектуры (т.е. Содержание-i386.gz , предполагая, что вы - архитектура i386). Сохраните эти три файла в каталоге / папке с именем suiteCodename (точным для Precise Pangolin).
  3. Затем вам нужно будет сделать следующее для каждого из репозиториев (среди Main, Universe, Restricted, Multiverse ). а. перейдите в каталог целевого репозитория, например. main , а затем в каталог архитектуры, например. binary-i386 , чтобы вы попали в http://archive.ubuntu.com/ubuntu/dists/suiteCodename/repositoryName/binary-????/ b , загрузите содержимое Packages.bz2, Packages.gz, Release и сохраните их в каталоге, названном после имени репозитория, например. main и поместите этот каталог в ранее созданный каталог suiteCodename . с. повторите a. и b. для каждого из репозиториев, которые вы хотите.
  4. Наконец, у вас должна быть структура вроде этого:
     precise
     ├── Contents-i386.gz
     ├── main
     │   └── binary-i386
     │       ├── Packages.bz2
     │       ├── Packages.gz
     │       └── Release.txt
     ├── Release.gpg
     ├── Release.txt
     └── universe
         └── binary-i386
             ├── Packages.bz2
             ├── Packages.gz
             └── Release.txt
    
    (предполагая, что ваш suiteCodename = точный, архитектура i386, и вам нужны основные и универсальные репозитории)
  5. Затем, после загрузки обновленных репозиториев, вы разместите загруженные файлы в соответствующей структуре (как показано выше) в каталоге целевого автономного компьютера. Сохраните структуру каталогов precise в папке с именем offlineRepository / dists / exact в вашем домашнем доме пользователя (~/offlineRepository/dists/precise) или где-либо еще (/home/offlineRepository/dists/precise с использованием sudo previleges в терминале или с файловым менеджером Nautilus началось с gksu nautilus, также убедитесь, что у вас есть права для скопированной структуры). Ваша автономная информация о репозитории будет готова к использованию.
  6. Добавьте локальный репозиторий в список источников . С помощью Ubuntu Software Center перейдите в Edit -> Software Sources ... -> Other Software -> Add ..., а затем в поле для строки APT добавьте: deb file:///home/offlineRepository precise main universe и нажмите Добавить источник . Убедитесь, что вы изменили строку в отношении вашей директории / структуры файла и набора. Затем перезагрузите пакеты или запустите sudo apt-get update в терминале. snap1 [/g25]
  7. Теперь с обновленными (и, возможно, недавно добавленными репозиториями) вы можете сбросить список URL-адресов для пакетов и зависимостей. Я беру следующую строку кода из одной из предыдущих сообщений askUbuntu:
    sudo apt-get install packageName --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    
    , например. для установки диспетчера пакетов Synaptic:
    sudo apt-get install synaptic --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    
    (Аналогичным образом вы также можете создавать списки обновлений.) Сгенерированный список можно использовать для загрузки пакета и всех зависимостей на онлайн-компьютере. Создайте сценарий для загрузки или использования списка для пакетной загрузки в некоторых менеджерах загрузки. (Также обратите внимание, что созданный текстовый файл использует окончание строки Unix / Linux и который вы можете захотеть изменить в Windows). Раньше для этого был более простой способ, когда Synaptic Package Manager был стандартным приложением в Ubuntu.
  8. Наконец, в целевой системе вы можете установить пакеты с помощью dpkg или любым другим способом.

Получение обновленной базы данных пакетов, включая обновления безопасности

Следующая структура, помимо приведенного выше объяснения, должна дать вам идею:

/opt/offlineRepoList/
└── dists
    ├── precise
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release.txt
    │   ├── Release.gpg
    │   ├── Release.txt
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release.txt
    ├── precise-security
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release
    │   ├── Release
    │   ├── Release.gpg
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release
    └── precise-updates
        ├── Contents-i386.gz
        ├── main
        │   └── binary-i386
        │       ├── Packages.bz2
        │       ├── Packages.gz
        │       └── Release
        ├── Release
        ├── Release.gpg
        └── universe
            └── binary-i386
                ├── Packages.bz2
                ├── Packages.gz
                └── Release
2
ответ дан 8 August 2018 в 23:12

Я использую apt-get с опцией «-print-uris», чтобы сделать это. Я также добавляю «-qq», поэтому было бы тихо.

Используйте sed, чтобы удалить лишние символы, добавленные к некоторым именам файлов (что-то вроде 3% 2a), и получить url, filename и md5sum файлов. Используйте wget для загрузки файлов. Используйте md5sum для проверки правильности загрузки файлов.

Вы можете использовать это для создания сценария оболочки для Linux или Mac OS (замените «.cmd» в командах на .sh и выполните «chmod a + x (имя файла), чтобы добавить разрешение на выполнение сценария) или командный файл Windows Command, и файл MD5Sum, чтобы убедиться, что файлы загружены правильно.

Команды

Создать скрипт:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > script.cmd

Примеры:

sudo apt-get install anjuta --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install-anjuta.cmd
sudo apt-get upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > upgrade.cmd
sudo apt-get dist-upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > dist-upgrade.cmd

Создать файл md5sum:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Примеры :

sudo apt-get install anjuta --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get dist-upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Вам нужна md5sum для Windows, если вы используете эту операционную систему для загрузки файлов.


Создайте скрипт для загрузки списков репозитория:

sudo apt-get update --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) :/wget -c \1 -O \2.bz2/p" > update.cmd

Проверка сумм MD5

Вы можете добавить их к концам скриптов, чтобы проверить md5sum:

Linux:

md5sum --quiet -c md5sum.txt

Windows (использует старший md5sum, не поддерживает -quiet):

md5sum -c md5sum.txt

Чтобы автоматически добавить сценарий:

echo -e "md5sum -c md5sum.txt\npause" >> script.cmd

Установка файлов списка (команда обновления )

Запустить эти команды в цель компьютер.

Вам нужно использовать bunzip2 для извлечения файлов списка репозитория:

bunzip2 *.bz2

Затем скопируйте в папку с листингами (текущая папка содержит только файлы списка):

sudo cp * /var/lib/apt/lists/

Выше комбинированный (текущая папка может содержать другие файлы):

for listfile in `ls *.bz2`; do bunzip2 $listfile; sudo cp ${listfile%.bz2} /var/lib/apt/lists/; done

Более быстрые загрузки

Если вы хотите ускорить загрузку файлов, попробуйте использовать Axel.

Замените wget -c ... -O ... на axel ... -o ....

Иерархия папок (загрузка файлов с использованием Windows)

Обычно я создаю такую ​​папку:

  • apt-get / bin / msys-1.0.dll msys-intl-8.dll wget.exe msys-iconv-2.dll md5sum.exe libeay32.dll libintl3.dll libssl32.dll libiconv2.dll update / update.cmd md5sum.txt install / install-foo.cmd install-bar.cmd upgrade.cmd md5sum.txt

Затем измените wget в строках выше на ..\\bin\\wget.exe, md5sum на ..\\bin\\md5sum.exe и т. д.

Это приведет к разделению файлов * .deb и файлов списка в разные папки.

Обновление вашей системы

  1. Загрузка на целевой компьютер, который использует U buntu
  2. Создайте скрипт для обновления
  3. Загрузите компьютер с подключением к Интернету
  4. Запустите update.sh (для Linux или Mac OS) или update.cmd (Windows)
  5. Вернуться к целевому компьютеру
  6. Установить файлы списка
  7. Создать скрипт для обновления / dist-upgrade (добавить команды md5sum в конец)
  8. Вернитесь к компьютеру с подключением к Интернету
  9. Запустите upgrade.sh/dist-upgrade.sh (Linux или Mac OS) или upgrade.cmd / dist-upgrade.cmd (Windows)
  10. Вернитесь к целевому компьютеру
  11. Скопируйте файлы * .deb в кеш: sudo cp *.deb /var/cache/apt/archives/
  12. Запуск: sudo apt-get upgrade или sudo apt-get dist-upgrade

Загрузить исполняемые файлы для Windows

Wget for Windows: http://gnuwin32.sourceforge.net/packages/wget.htm

md5sum для Windows: http://gnuwin32.sourceforge.net/packages/coreutils.htm или http://www.etree.org/cgi-bin/counter.cgi/software/md5sum .exe

Вы также можете использовать те из MinGW , которые я использую. Вам понадобятся только wget.exe, md5sum.exe и необходимые общие библиотеки. Посмотрите раздел «Иерархия папок».

Примечания

  • Я не совсем уверен, что все вышеприведенные команды будут работать, так как я не использовал их уже месяц , Особенно команда обновления, в которой я сегодня не тестировал некоторые ее части.
  • Чтобы легко увидеть результаты команд, добавьте строку «пауза» в конце скриптов, если используете Windows.
  • Я рекомендую создавать сценарии оболочки для обновления, обновления и установки пакетов, если вы часто используете эти команды.
27
ответ дан 8 August 2018 в 23:12

Первое, что вы могли бы сделать до установки автономного пакета, - это обновить репозиторий / репозитории, которые вам нужны. Вы наверняка должны точно обновить основной репозиторий (бесплатно и официально поддерживаемое программное обеспечение).

Приложения, которые вы хотите установить, могут находиться в некоторых других репозиториях, таких как Universe (бесплатная, но без официальной поддержки) или Ограниченные (без поддержки, официально поддерживаемые) или Multiverse (не- бесплатно, без официальной поддержки). Поэтому вы можете захотеть один или несколько из них.

Итак, первым шагом в этом процессе является создание обновленного автономного хранилища; затем сгенерируйте список «загрузить» и загрузите их, и, наконец, insatllation. Вот как это делается: source

  1. Введите url: http://archive.ubuntu.com/ubuntu/dists/suiteCodename где suiteCodename должен быть соответствующим образом подстроен, скажем, точный для Ubuntu 12.04 (Precise Pangolin) [или utopic для Ubuntu 14.10 (Utopic Unicorn)], d теперь находится в http://archive.ubuntu.com/ubuntu/dists/precise/ или любом другом, относящемся к вашему набору.
  2. Загрузите файлы Выпустите , Release.gpg и файл Содержание - ????. Gz для вашей архитектуры (т.е. Содержание-i386.gz , предполагая, что вы - архитектура i386). Сохраните эти три файла в каталоге / папке с именем suiteCodename (точным для Precise Pangolin).
  3. Затем вам нужно будет сделать следующее для каждого из репозиториев (среди Main, Universe, Restricted, Multiverse ). а. перейдите в каталог целевого репозитория, например. main , а затем в каталог архитектуры, например. binary-i386 , чтобы вы попали в http://archive.ubuntu.com/ubuntu/dists/suiteCodename/repositoryName/binary-????/ b , загрузите содержимое Packages.bz2, Packages.gz, Release и сохраните их в каталоге, названном после имени репозитория, например. main и поместите этот каталог в ранее созданный каталог suiteCodename . с. повторите a. и b. для каждого из репозиториев, которые вы хотите.
  4. Наконец, у вас должна быть структура вроде этого:
     precise
     ├── Contents-i386.gz
     ├── main
     │   └── binary-i386
     │       ├── Packages.bz2
     │       ├── Packages.gz
     │       └── Release.txt
     ├── Release.gpg
     ├── Release.txt
     └── universe
         └── binary-i386
             ├── Packages.bz2
             ├── Packages.gz
             └── Release.txt
    
    (предполагая, что ваш suiteCodename = точный, архитектура i386, и вам нужны основные и универсальные репозитории)
  5. Затем, после загрузки обновленных репозиториев, вы разместите загруженные файлы в соответствующей структуре (как показано выше) в каталоге целевого автономного компьютера. Сохраните структуру каталогов precise в папке с именем offlineRepository / dists / exact в вашем домашнем доме пользователя (~/offlineRepository/dists/precise) или где-либо еще (/home/offlineRepository/dists/precise с использованием sudo previleges в терминале или с файловым менеджером Nautilus началось с gksu nautilus, также убедитесь, что у вас есть права для скопированной структуры). Ваша автономная информация о репозитории будет готова к использованию.
  6. Добавьте локальный репозиторий в список источников . С помощью Ubuntu Software Center перейдите в Edit -> Software Sources ... -> Other Software -> Add ..., а затем в поле для строки APT добавьте: deb file:///home/offlineRepository precise main universe и нажмите Добавить источник . Убедитесь, что вы изменили строку в отношении вашей директории / структуры файла и набора. Затем перезагрузите пакеты или запустите sudo apt-get update в терминале. snap1 [/g25]
  7. Теперь с обновленными (и, возможно, недавно добавленными репозиториями) вы можете сбросить список URL-адресов для пакетов и зависимостей. Я беру следующую строку кода из одной из предыдущих сообщений askUbuntu:
    sudo apt-get install packageName --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    
    , например. для установки диспетчера пакетов Synaptic:
    sudo apt-get install synaptic --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    
    (Аналогичным образом вы также можете создавать списки обновлений.) Сгенерированный список можно использовать для загрузки пакета и всех зависимостей на онлайн-компьютере. Создайте сценарий для загрузки или использования списка для пакетной загрузки в некоторых менеджерах загрузки. (Также обратите внимание, что созданный текстовый файл использует окончание строки Unix / Linux и который вы можете захотеть изменить в Windows). Раньше для этого был более простой способ, когда Synaptic Package Manager был стандартным приложением в Ubuntu.
  8. Наконец, в целевой системе вы можете установить пакеты с помощью dpkg или любым другим способом.

Получение обновленной базы данных пакетов, включая обновления безопасности

Следующая структура, помимо приведенного выше объяснения, должна дать вам идею:

/opt/offlineRepoList/
└── dists
    ├── precise
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release.txt
    │   ├── Release.gpg
    │   ├── Release.txt
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release.txt
    ├── precise-security
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release
    │   ├── Release
    │   ├── Release.gpg
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release
    └── precise-updates
        ├── Contents-i386.gz
        ├── main
        │   └── binary-i386
        │       ├── Packages.bz2
        │       ├── Packages.gz
        │       └── Release
        ├── Release
        ├── Release.gpg
        └── universe
            └── binary-i386
                ├── Packages.bz2
                ├── Packages.gz
                └── Release
2
ответ дан 14 August 2018 в 13:11

Я использую apt-get с опцией «-print-uris», чтобы сделать это. Я также добавляю «-qq», поэтому было бы тихо.

Используйте sed, чтобы удалить лишние символы, добавленные к некоторым именам файлов (что-то вроде 3% 2a), и получить url, filename и md5sum файлов. Используйте wget для загрузки файлов. Используйте md5sum для проверки правильности загрузки файлов.

Вы можете использовать это для создания сценария оболочки для Linux или Mac OS (замените «.cmd» в командах на .sh и выполните «chmod a + x (имя файла), чтобы добавить разрешение на выполнение сценария) или командный файл Windows Command, и файл MD5Sum, чтобы убедиться, что файлы загружены правильно.

Команды

Создать скрипт:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > script.cmd

Примеры:

sudo apt-get install anjuta --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install-anjuta.cmd
sudo apt-get upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > upgrade.cmd
sudo apt-get dist-upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > dist-upgrade.cmd

Создать файл md5sum:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Примеры :

sudo apt-get install anjuta --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get dist-upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Вам нужна md5sum для Windows, если вы используете эту операционную систему для загрузки файлов.


Создайте скрипт для загрузки списков репозитория:

sudo apt-get update --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) :/wget -c \1 -O \2.bz2/p" > update.cmd

Проверка сумм MD5

Вы можете добавить их к концам скриптов, чтобы проверить md5sum:

Linux:

md5sum --quiet -c md5sum.txt

Windows (использует старший md5sum, не поддерживает -quiet):

md5sum -c md5sum.txt

Чтобы автоматически добавить сценарий:

echo -e "md5sum -c md5sum.txt\npause" >> script.cmd

Установка файлов списка (команда обновления )

Запустить эти команды в цель компьютер.

Вам нужно использовать bunzip2 для извлечения файлов списка репозитория:

bunzip2 *.bz2

Затем скопируйте в папку с листингами (текущая папка содержит только файлы списка):

sudo cp * /var/lib/apt/lists/

Выше комбинированный (текущая папка может содержать другие файлы):

for listfile in `ls *.bz2`; do bunzip2 $listfile; sudo cp ${listfile%.bz2} /var/lib/apt/lists/; done

Более быстрые загрузки

Если вы хотите ускорить загрузку файлов, попробуйте использовать Axel.

Замените wget -c ... -O ... на axel ... -o ....

Иерархия папок (загрузка файлов с использованием Windows)

Обычно я создаю такую ​​папку:

  • apt-get / bin / msys-1.0.dll msys-intl-8.dll wget.exe msys-iconv-2.dll md5sum.exe libeay32.dll libintl3.dll libssl32.dll libiconv2.dll update / update.cmd md5sum.txt install / install-foo.cmd install-bar.cmd upgrade.cmd md5sum.txt

Затем измените wget в строках выше на ..\\bin\\wget.exe, md5sum на ..\\bin\\md5sum.exe и т. д.

Это приведет к разделению файлов * .deb и файлов списка в разные папки.

Обновление вашей системы

  1. Загрузка на целевой компьютер, который использует U buntu
  2. Создайте скрипт для обновления
  3. Загрузите компьютер с подключением к Интернету
  4. Запустите update.sh (для Linux или Mac OS) или update.cmd (Windows)
  5. Вернуться к целевому компьютеру
  6. Установить файлы списка
  7. Создать скрипт для обновления / dist-upgrade (добавить команды md5sum в конец)
  8. Вернитесь к компьютеру с подключением к Интернету
  9. Запустите upgrade.sh/dist-upgrade.sh (Linux или Mac OS) или upgrade.cmd / dist-upgrade.cmd (Windows)
  10. Вернитесь к целевому компьютеру
  11. Скопируйте файлы * .deb в кеш: sudo cp *.deb /var/cache/apt/archives/
  12. Запуск: sudo apt-get upgrade или sudo apt-get dist-upgrade

Загрузить исполняемые файлы для Windows

Wget for Windows: http://gnuwin32.sourceforge.net/packages/wget.htm

md5sum для Windows: http://gnuwin32.sourceforge.net/packages/coreutils.htm или http://www.etree.org/cgi-bin/counter.cgi/software/md5sum .exe

Вы также можете использовать те из MinGW , которые я использую. Вам понадобятся только wget.exe, md5sum.exe и необходимые общие библиотеки. Посмотрите раздел «Иерархия папок».

Примечания

  • Я не совсем уверен, что все вышеприведенные команды будут работать, так как я не использовал их уже месяц , Особенно команда обновления, в которой я сегодня не тестировал некоторые ее части.
  • Чтобы легко увидеть результаты команд, добавьте строку «пауза» в конце скриптов, если используете Windows.
  • Я рекомендую создавать сценарии оболочки для обновления, обновления и установки пакетов, если вы часто используете эти команды.
27
ответ дан 14 August 2018 в 13:11

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

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