Обновление множественного ubuntu установки throw lan [duplicate]

Я пришел на этот пост всего несколько дней назад. Я не хочу использовать Plop Boot Manager, потому что мой USB-накопитель уже загрузочен.

Поэтому я попытался указать USB-накопитель на диск VMDK (как в ответе Терренса), создав vboxmanage internalcommands createrawvmdk -filename ~/usb.vmdk -rawdisk /dev/sdb [ ! d1]

К сожалению, это отказалось работать ... Я chmod и chown диск usb.vmdk, и поэтому я смог подключить его к виртуальной машине, но он просто не работал.

Наконец, я попробовал другое решение, и это работает безупречно. Здесь (спасибо Gean Santos за исследование):

Вставьте USB-накопитель и определите его (мой /dev/sdb, работает Sabayon Linux); Создайте диск .vmdk, преобразов необработанное устройство (например, USB-накопитель) на диск VirtualBox
sudo VBoxManage convertfromraw /dev/sdb ./usb.vmdk --format vmdk
. Теперь у вас есть диск usb.vmdk, созданный с вашего загрузочного USB-накопителя. Я также попробовал dd USB-накопитель к файлу изображения и создал диск .vmdk из файла изображения. Он работает, а также .vdi диски создавали прежний путь (или из файла изображения). Теперь дайте разрешения на созданный диск, чтобы VirtualBox мог получить доступ к файлу. Это просто означает изменение владельца файла пользователю, входящему в группу vboxusers. Если ваша установка VirtualBox работает нормально, чем этот владелец, возможно, вы:
sudo chown `whoami`:`whoami` ./usb.vmdk
Теперь вам просто нужно прикрепить диск usb.vmdk к виртуальной машине. Но он должен быть прикреплен к контроллеру IDE. Я пробовал SATA без успеха.

На этом этапе все в порядке.

Просто загрузите новую виртуальную машину, нажмите F12 и выберите загрузочный диск.

Наслаждайтесь!

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

56 ответов

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

однако, в отдельных случаях, когда вы просто хотите быстро установить пакеты в системе, которая не имеет подключения к Интернету (и у вас есть возможность скачать их на другой машине и привезу), вы можете сделать это. Основная сложность состоит в определении того, что вам нужно, так как часто есть другие пакеты, от которых она зависит, и которая, следовательно, должна быть установлена раньше, или одновременно, установки пакета.

этот ответ мотивируется дублировать вопрос G++ в Ubuntu 14.04 и используются при необходимости установки g++ в качестве основного примера.

я подчеркиваю, что этот метод не должен применяться длительно в качестве альтернативы то, что, по крайней мере, облегчает автоматическое определение и установка необходимых обновлений безопасности. Не подключаясь к сети снижает вероятность нападения значительно, но некоторые ошибки безопасности могут быть использованы с помощью данных из любого источника.

хотя этот метод может показаться сложным, как правило, занимает всего несколько минут. Для пакетов с большим количеством зависимостей, это может занять больше времени. Для установки метапакетов, которые тянут на очень большое количество зависимостей (например, ubuntu-desktop на минимальную систему), это может занять гораздо больше времени, чтобы скачать все необходимое .deb файлы и этот метод вряд ли подойдет.

определения необходимых зависимостей

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

apt-get -s install g++

я опустил на [F11], так как это только имитация, так что права root не нужны.

если вы действительно хотите установить все самые распространенные инструменты для построения пакетов, а не просто g++, Вы предпочтете:

apt-get -s install build-essential

выход (ибо [от f13]) будет выглядеть так:

NOTE: This is only a simulation! apt-get needs root privileges for real execution. Keep also in mind that locking is deactivated, so don't depend on the relevance to the real current situation! Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: g++-4.8 libstdc++-4.8-dev Suggested packages: g++-multilib g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg libstdc++-4.8-doc The following NEW packages will be installed: g++ g++-4.8 libstdc++-4.8-dev 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. Inst libstdc++-4.8-dev (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64]) Inst g++-4.8 (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64]) Inst g++ (4:4.8.2-1ubuntu6 Ubuntu:14.04/trusty [amd64]) Conf libstdc++-4.8-dev (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64]) Conf g++-4.8 (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64]) Conf g++ (4:4.8.2-1ubuntu6 Ubuntu:14.04/trusty [amd64])

это говорит о том, что установить g++ на моей системе, мне нужны пакеты g++, g++-4.8, и [f17 в].

судя по результатам моделирования, как правило, лучше, чем просто глядя зависимостей пакета (или предполагая, что то, что вам нужно такое же, как и выше), потому что:

вы, возможно, уже установлены некоторые зависимости. Зависимости (т. е., пакеты, пакет нужно установить или работы) сами по себе могут иметь зависимости, что вы уже не установили. [dиода d17]получать пакеты[!dиода d17]

когда вы знаете, какие пакеты вам нужны, вы можете их скачать. Я предлагаю использовать для этого запуска, потому что загрузки SSL-шифрованием, который помогает предотвратить повреждение файлов.

это не просто защита от случайных или умышленных манипуляций злоумышленник; он также помогает предотвратить случайное повреждение файла, который является гораздо более распространенной проблемой для загруженных файлов. Есть еще один вид это не мешает: когда загружает файл только частично, но вы думаете, что это закончено. Установка пакета обычно с apt-get или в центре программного обеспечения не требует https, поскольку его хэш сверяется с цифровой подписью список хэшей. Если вы в конечном итоге положить эти пакеты в кэше пакета и используя [зг19], чтобы установить их, что будет происходить. Но если вы в конечном итоге того, чтобы установить вручную загруженные пакетами с dpkg -i, что не будет сделано.

Вы можете искать пакет, вписав свое имя под пакеты в и G++ в Ubuntu 14.04 и нажать кнопку "Найти пакет". Например, поиск [клавиши f21] приносит вам на GCC-4.8 страницы исходный пакет.

выберите название вашего релиза убунту. Вы работаете 14.04, так что это надежный Тар. Кодовые имена для всех версий Ubuntu перечислены на GCC-4.8 страницы пакета с исходным кодом. Нажмите кнопку вправо треугольника для просмотра загрузки пакета.

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

это не просто защита от случайных или умышленных манипуляций злоумышленник; он также помогает предотвратить случайное повреждение файла, который является гораздо более распространенной проблемой для загруженных файлов. безопасности, обновления для системы безопасности поставляются после освобождения; есть еще один вид это не мешает: когда загружает файл только частично, но вы думаете, что это закончено. предложенные обновления, которые доступны для установки, но не в стадии тестирования и не рекомендуется для общего использования; Установка пакета обычно с apt-get или программного обеспечения не требует https, поскольку его хэш сверяется с цифровой подписью список хэшей. Если вы в конечном итоге положить эти пакеты в кэше пакета и используя [зг19], чтобы установить их, что будет происходить.

например, вот что доступно для Firefox в 14.04:

screenshot showing the rightward facing triangle with which one expands a release to see downloads for it[!d31]

как правило, вы хотите пакеты в безопасности или обновлений, если они существуют, и в противном случае пакеты в релизе.

после того как вы расширить список пакетов, находим файл .deb для вашей архитектуры. В debs названы name_version_architecture.deb. Наиболее распространенные архитектуры:

безопасности, обновления безопасности, поставляемые после освобождения; 32-разрядный ПК/Mac (так называемый [f25 привод датчика], также для обоих)

например, чтобы получить пакет g++-4.8 для 64-разрядной версии Ubuntu, вы можете скачать g++-4.8_4.8.4-1ubuntu15_amd64.deb.

[размером d57]устанавливаем пакеты[!размером d57]

если пакеты получены, являются безопасность, что apt-get с install действие бы автоматически получить и установить (если ваша система была подключенных к сети), тогда вы можете положить пакеты в [f30 С] и просто выполните эту команду:

sudo apt-get install g++

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

[d63, как]в конкретном случае установки g++, я хотел бы использовать [f32 из].[!d63, как] [d64 С]В тех случаях, когда это не сработает или вы ожидаете, что это не установите пакеты, поставив их в пустую папку и работает:[!d64 с] sudo dpkg -Ri /path/to/folder

или вы можете назвать пакеты по отдельности. Этот пример предполагает пакеты в текущем каталоге (т. е., что вы cdЭд в каталог, содержащий их):

sudo dpkg -i package1.deb package2.deb ...

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

2
ответ дан 24 July 2018 в 19:42

Вы можете использовать apt-offline или apt-offline-gui. Предварительные требования: система друга с подключением к Интернету. apt-offline, установленный в обеих системах.

Установка в автономном режиме выполняется тремя простыми шагами.

Предварительные требования : Создайте файл подписи в отключенном поле Debian дома apt-offline set /tmp/apt-offline.sig. Вышеприведенная команда генерирует всю информацию, требуемую от apt об обновлении своей базы данных.

Шаг 2: Загрузка данных на основе на файл подписи, сгенерированный ранее apt-offline get C:\apt-offline.sig --threads 5 Вышеуказанная команда будет загружать данные, как указано в файле подписи. Чтобы ускорить загрузку (это может быть из нескольких APT-репозиториев), в этом примере мы запускаем 5 потоков загрузки. После завершения вы можете просто скопировать данные (файл архива, если вы использовали опцию --bundle) обратно на съемный носитель и скопировать его обратно на свой автономный хост.

Шаг 2 [ ! d10]: Как только вы вернетесь на домашнюю машину Debian, вы будете передавать данные со съемного носителя в apt-offline: apt-offline install /media/USB/apt-offline.zip Это обновит APT базы данных на вашей отключенной машине.

Apt-offline можно даже использовать в системах Windows. На мой взгляд, apt-offline - лучший вариант для автономной установки.

Источник

14
ответ дан 24 July 2018 в 19:42
  • 1
    Два замечания: во-первых, генерация подписи для уже установленного или готового к установке пакета «сбой». в том смысле, что .sig-файл пуст. Это немного обескураживает, но, по-видимому, нормально. Во-вторых, apt и apt-offline работают правильно, только если / var / lib / apt / lists правильно загружены. Это довольно много работы, если целевая и хост-машины имеют разные архитектуры. – Urhixidur 30 July 2014 в 18:26
  • 2
    У обоих исходных и целевых ПК должна быть одинаковая версия Ubuntu? – Tulains Córdova 21 July 2015 в 19:32

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

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

0
ответ дан 24 July 2018 в 19:42
  • 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
ответ дан 24 July 2018 в 19:42

Я использую 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
ответ дан 24 July 2018 в 19:42
  • 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
ответ дан 24 July 2018 в 19:42
  • 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
ответ дан 24 July 2018 в 19:42

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

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

1
ответ дан 24 July 2018 в 19:42

Этот вопрос немного старый, поэтому ответ в это время может быть избыточным, но, возможно, вы также можете попробовать использовать 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
ответ дан 24 July 2018 в 19:42
  • 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
ответ дан 24 July 2018 в 19:42
  • 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
ответ дан 24 July 2018 в 19:42
  • 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
ответ дан 24 July 2018 в 19:42

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

Приложения, которые вы хотите установить, могут находиться в некоторых других репозиториях, таких как 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 в 22:46

Я использую 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 в 22:46

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

Приложения, которые вы хотите установить, могут находиться в некоторых других репозиториях, таких как 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 в 17:33

Я использую 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 в 17:33

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

Приложения, которые вы хотите установить, могут находиться в некоторых других репозиториях, таких как 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 в 19:59

Я использую 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 в 19:59

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

Приложения, которые вы хотите установить, могут находиться в некоторых других репозиториях, таких как 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 в 04:44

Я использую 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 в 04:44

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

Приложения, которые вы хотите установить, могут находиться в некоторых других репозиториях, таких как 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
ответ дан 6 August 2018 в 21:52

Я использую 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
ответ дан 6 August 2018 в 21:52

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

Приложения, которые вы хотите установить, могут находиться в некоторых других репозиториях, таких как 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
ответ дан 9 August 2018 в 02:15

Я использую 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
ответ дан 9 August 2018 в 02:15

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

Приложения, которые вы хотите установить, могут находиться в некоторых других репозиториях, таких как 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 в 20: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
ответ дан 14 August 2018 в 20:29

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

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