К основному контенту

Скачиваем deb-пакеты с зависимостями для offline-установки

Сегодня вот задумался над тем что же делать если доступа в интернет не будет, а понадобится установить какую-либо программу. Ведь программы в Linux Ubuntu устанавливаются из интернет-репозиториев. Кстати это работает и в Kubuntu, Lubuntu. Остальные не проверял.
А как взять необходимые для установки deb-пакеты? Если на компьютере ещё нет интернета, хотя бы программу для подключения к интернету, например ту же программу wvdial. Чтобы можно было подключить например мой модем в консоли. Хоть я и разобрался как подключать 3g USB-модем при помощи pppd. Но а вдруг понадобится.
Для того чтобы получить список интернет адресов где находятся наши deb-пакеты я использую программу apt-get, в виде команды apt-get --print-uris --yes здесь --print-uris возвращает URL адреса на экран. Для вывода данной команды права суперпользователя ненужны, так что sudo вводить Вам не понадобится.

apt-get --print-uris --yes install wvdial

Но чтобы отсеить результаты и оставить одни URL-адреса. Я использую возможности grep совместно с cut, для того чтобы отсеить результаты вывода программы. Вместо wvdial вы можете ввести ту программу которую хотите установить.

apt-get --print-uris --yes install wvdial | grep ^\' | cut -d\' -f2

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

apt-get --print-uris --yes install wvdial | grep ^\' | cut -d\' -f2 > Загрузка.txt

Теперь для того чтобы скачать все deb-пакеты мне достаточно будет использовать программу wget, о ней я писал ранее. Достаточно будет выполнить 

wget -i Загрузка.txt

Где Загрузка.txt это файл который создался при выполнении команды заданной выше. Можете написать полный путь к этому файлу если он не находится в той папке где Вы открыли терминал.

Так же можно получить список адресов необходимых для обновления дистрибутива.

apt-get --print-uris --yes dist-upgrade | grep ^\' | cut -d\' -f2 > "обновления дистрибутива"

Ну а дальше нам останется лишь взять файл который получится, а именно "обновления дистрибутива" и скачать что нам необходимо при помощи в моём случае wget.

wget -i "обновления дистрибутива"

При скачивании большого количества файлов Вам может понадобится выбрать папку в которую будут закачиваться файлы и команда станет вот такого вида

wget --directory-prefix=/путь/куда/скачиваем/файлы -i Загрузка.txt

wget --directory-prefix=/путь/куда/скачиваем/файлы -i "обновления дистрибутива"

Ну вот теперь остаётся лишь перенести скачанные deb-пакеты на компьютер без интернета и установить их. В моём случае я скачивал программу wvdial, а он в зависимостях вытянул четыре deb-пакета. Берём эти пакеты флешкой переносим на компьютер для которого скачивал файлы, и устанавливаем их при помощи команды.

Переходим в каталог со скачанными и перенесёнными deb-пакетами

cd /путь/к/ нашим/deb-пакетам

И устанавливаем наши пакеты.

sudo dpkg -i *deb

Вот по сути дела и все, программа wvdial установлена. Подобным образом можно выкачать совершенно любую программу в Linux Ubuntu, Kubuntu, Lubuntu для offline-установки. Может и в других дистрибутивах не знаю пробовал только эти.

Комментарии

Популярные сообщения из этого блога

Перезагрузка Linux в чем разница reboot и shutdown -r now

Брат сегодня спросил, а в чем разница между командами в терминале reboot и shutdown -r now ? Ведь обе эти команды делают кажется одно и тоже. Перезагружают операционную систему. Для чего вводить shutdown -r now , если данная команда заметно длиннее??? На первый взгляд он конечно прав, обе команды действительно делают лишь то, что перезагружают операционную систему Linux. Разница состоит в том как эти команды выполняют перезагрузку. Команда shutdown -r now указывает операционной системе Linux перезагрузить систему сейчас, на что указывает конец данной команды, а именно now . Но на саму перезагрузку это конечно не влияет. Все дело в том что команда shutdown -r выполняет корректное завершение процесса работы. То есть ждёт необходимое для завершения работы программы время, а это может занять достаточно долгое время. Если же система вдруг по каким либо причинам подвисла, время это может растянутся на десятки минут или дольше что не всегда удобно. Команда же reboot просто посылает ком

Настройка bash терминала под себя

Сегодня, в очередной раз разбираясь с работой в консоли Линукс я решил, для удобства немного подредактировать свой файл .bashrc Данный фаил отвечает за то что выводится на экран во время нашей работы в bash . Вообще настроек в bash существует достаточно много и я ещё не со всеми разобрался, да и не все пока разбирал. Например я пока не разбирал цветную настройку консоли. А знаю что консоль можно разукрасить практически как новогоднюю Ёлку. Но всему своё время. Изменений в файле " .bashrc " на сегодня я хоть и сделал не так и много, но это уже позволяет значительно упростить мою работу и обучение работе с консолью. Файл " .bashrc " находится в нашей домашней директории вот здесь ~/.bashrc , как видите знак тильды указывает на то что фаил находится в Вашей домашней директории, как я это уже говорил ранее в статье, когда описывал команды для передвижения по директориям в системе Линукс, в консоли. Точка с которой начинается название файла говорит нам о том чт