Как обновить linux без интернета

Обновлено: 02.07.2024

Существует инструмент apt-offline , помогающий поддерживать систему в актуальном состоянии даже при отсутствии интернет-соединения с помощью второго, подключённого к Интернету компьютера. Этот второй компьютер может работать под управлением Xubuntu, другой разновидности Ubuntu, или Debian. Доступен графический интерфейс apt-offline-gui . В данном документе рассматривается вариант с использованием командной строки.

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

Несколько особых пакетов невозможно установить без доступа к Интернету, поскольку в процессе их установки или обновления запускаются загрузочные скрипты для скачивания данных из Интернета. Типичными примерами таких пакетов являются flashplugin-installer , nautilus-dropbox и ttf-mscorefonts-installer . Обходного пути установки подобных пакетов, которые сами осуществляют загрузку, не существует.

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

При использовании apt-offline могут появиться некоторые ошибки, выделенные красным текстом, о невозможности загрузить файлы, относящиеся к переводам. Их можно без вреда проигнорировать.

Обновление репозиториев

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

На компьютере без Интернета наберите: apt-offline set --update apt-offline.sig

После выполнения команды, скопируйте apt-offline.sig на USB-носитель и перенесите на другой компьютер. С помощью apt-offline на этом компьютере используйте данный файл, чтобы загрузить то, что нужно для обновления на не подключённом к Интернету компьютере. Перейдите в каталог на флешке, содержащий apt-offline.sig, наберите apt-offline get --bundle bundle.zip apt-offline.sig . После завершения извлеките USB-носитель и верните его на компьютер без Интернета.

На компьютере без Интернета снова подключите USB-носитель. Перейдите на нём в каталог, содержащий два файла и наберите: sudo apt-offline install bundle.zip . После завершения работы команды ваши репозитории будут обновлены.

Установка пакета

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

В данном примере предположим, что вы хотите установить пакет новой программы. Будем называть его PACKAGENAME , хотя в реальном случае вам следует указать взамен имя пакета. Весьма часто установка пакета сопряжена с установкой его зависимостей. apt-offline позаботится о разрешении зависимостей самостоятельно. Откройте окно терминала, подключите флеш-диск USB и перейдите в выбранный заранее каталог. Из этого каталога выполните sudo apt-offline set --install-packages $PACKAGENAME --update apt-offline.sig , чтобы начать процесс.

После завершения скопируйте apt-offline.sig на USB-носитель и возьмите его с собой на другой компьютер. С помощью apt-offline на этом компьютере используйте данный файл, чтобы загрузить то, что требуется компьютеру без Интернета для обновления и установки PACKAGENAME. Перейдите в каталог на флеш-диске, содержащем apt-offline.sig, и выполните sudo apt-offline get --bundle bundle.zip apt-offline.sig . Вывод команды покажет попытку загрузить обновления репозитория, а также PACKAGENAME и всех его зависимостей. После завершения выньте USB-носитель и возьмите его на компьютер без Интернета.

Вставьте USB-носитель в компьютере без Интернета. Перейдите в каталог носителя, содержащий два файла и наберите: sudo apt-offline install bundle.zip . Когда выполнение команды завершится, репозитории будут обновлены. Затем можете установить PACKAGENAME командой: sudo apt-get install PACKAGENAME .

Обновление пакетов

Обновление пакетов проходит в 2 этапа: обновление репозиториев, а затем загрузка и обновление требуемых пакетов.

Вначале обновите репозитории, следуя инструкциям в Обновление репозиториев

2. ubuntu 1404 чистая без интернета, пакеты устанавливаю и обновляю командой sudo dpkg -i /usb/flash/path/*.deb, но некоторые пакеты не хотят сразу ставится (часть из libreoffice), приходится повторять эту же команду, тогда ок

как избавится от повторного выполнения команды ?


это не проще подачи дважды команды dpkg -i /usb/flash/path/*.deb

если подать команду дважды нормально - мне так будет лучше


не старовато ли ?


Б[5.1]дь!
Оно, оказывается, протухло.
Вот что значит, слезть с бубунты.

а допустим оно не протухло бы
создам я репозитарий на CD или флешке
принесу на чистый хост
как мне теперь обновить существующие и установить новые пакеты ? (максимум 2 команды)


Ъ: оно создаёт образ из кэша пакетов, чтоб его можно было пренести на другой комп.

там более чем 2 команды - какой смысл это делать если оно сложнее в итоге получается ?
и потом ведь придется еще и тыкать в те пакеты, которые надо установить - не решение никак это


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

Лоровцы ленивы, ой ленивы

на любой вкус решения

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

Сводится, все как обычно update & upgrade
После того как добавишь в сурс лист путь к носителю, предполагается что с него обновляться и будешь

обновляться да, но новые пакеты разве через upgrade ставятся ?

man apt
upgrade и dist-upgrade должен знать каждый кто использует apt и дистры на deb


обновляться да, но новые пакеты разве через upgrade ставятся ?

ты такой по жизни или просто прикинулся? или то, что у apt-get'а есть команда install совсем не знаешь?

да емнить, так и говори, хочу клон
список установленных в системе пакетов:
$ dpkg --get-selections > installed_programs.txt
Теперь все пакеты ставим на другом компьютере:
$ dpkg --set-selections < installed_programs.txt
$ apt-get dselect-upgrade
не отменяет того, что понадобится локальная репа, если нужны свежие версии


Да клон он хочет, клон


Все неправы. Причем мало того, что apt-offline никто не посоветовал, так еще и пока вы тут возились, уже можно было весь репозиторий не вникая rsync'нуть и унести куда надо.


sudo dpkg -i /usb/flash/path/*.deb && sudo dpkg -i /usb/flash/path/*.deb

задрал уже. вот, избавляйся


Еще один. Прекратите советовать чушь!

где то так я и хотел, нервирую ?


ну немного. в самом начале был дельный линк на решение, а это - стрёмная хрень, но коли уж хочется..

Сводится: apt-get update && apt-get install <список всех пакетов>


установка с него обновлений и нужных пакетов не сводится к одной команде

кстати, только сейчас дошло, а как ты чистую, свежеустановленную систему, подключённую к интернетам, одной командой и обновишь, и установишь на неё нужные пакеты?

novitchok ★★★★★ ( 20.05.15 17:13:27 )
Последнее исправление: novitchok 20.05.15 17:14:36 (всего исправлений: 2)


не, не фурычит почему-то

тогда яп например скорее всего в sources.list указал сервер localhost, и дальше по инструкции. Так проще всего.

а как ты чистую, свежеустановленную систему

никак, много команд конечно
но на другие машины хотел _автоматизировать_
да, думаю о скрипте
сами идеи получил, всем спасибо, буду экспериментировать

ага, так бывает и часто )


Не надо экспериментировать, сделай как надо готовыми средствами.


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

где обещал? && не знаю && не видел && не в курсе.

а вообще aptitude тебе одна команда.


но на другие машины хотел _автоматизировать_

ППС: а вообще, я бы вот, в случае иметь машину с deb-дистрибутивом бы, но без доступа в интернеты бы, пользовал бы apt-mirror


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


сами идеи получил . думаю о скрипте

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

хорошо aptitude -u отмечаешь что тебе надо g q


неа, не получается .

даже систему обновить не получается, а как же с установкой ещё не установленного?

значит я ошибся.


Установка пакетов в Ubuntu на компьютере без интернета

На работе у меня компьютер, который в силу непреодолимых причин не имеет доступ в интернет. В связи с этим процесс установки в Ubuntu необходимых пакетов (программ, библиотек, обновлений) требует особого подхода. Дома, естественно, имеется безлимитный интернет на хорошей скорости. Задача сводится к тому, чтобы дома скачать требуемые пакеты, принести их на работу и корректно установить.

Для решения этой проблемы я воспользовался способом предложенным в статье "Простой способ установки пакетов (без интернета)". Данный способ рекомендует иметь свеже установленную Ubuntu, поэтому я дома с помощью менеджера Oracle VM VirtualBox создал виртуальную машину, на которую установил Ubuntu.

Все пакеты, не входящие в состав установочного диска LiveCD, при установке закачиваются в папку /var/cache/apt/archives . Если зайти в нее сразу после установки системы, то в ней можно найти 12 языковых пакетов, которые были закачаны в прцессе настройки локализаций:

firefox-locale-ru_12.0+build1-0ubuntu0.12.04.1_i386.deb
hunspell-ru_20120101-1_all.deb
language-pack-gnome-ru-base_1%3a12.04+20120417_all.deb
.
thunderbird-locale-ru_1%3a11.0.1+build1-0ubuntu2_all.deb

Рекомендуется создать в своей домашней папке, например, папку Languages и скопировать в нее эти пакеты, чтобы иметь возможность русифицировать Ubuntu на компьютере без интернета. Из папки /var/cache/apt/archives их лучше удалить, чтобы не создавать в ней мешанину из пакетов, относящихся к различным приложениям.

Итак, приносим эти пакеты на работу (или в другое место, где нет интернета), копируем их в свою домашнюю папку. Пусть, для определенности, путь к пакетам будет иметь вид /home/login/Languages/*.deb . Запускаем терминал и вводим последовательность команд:

sudo -i
вводим пароль для получения прав ROOT
cd /home/login/Languages
dpkg -i *.deb
дожидаемся окончания процесса установки пакетов
apt-get install -f -y

Последняя команда позволяет убедиться, что все пакеты корректно установились. Если она выводит на экран что-то вроде

Чтение списка пакетов. Готово
Построение дерева зависимостей
Чтение информации о состоянии. Готово
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.

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

Рассмотрим еще раз последовательность действий на примере установки GIMP.

1. Дома запускаем Центр приложений Ubuntu , набираем в строке поиска GIMP , в найденном выделяем строку Редактор изображений GIMP и нажимаем кнопку Установить .

2. По окончании установки заходим в папку /var/cache/apt/archives и убеждаемся, что в ней появились 17 новых пакетов

gimp-data_2.6.12-1ubuntu1_all.deb
gimp-flegita_0.6.2-1.1ubuntu1_i386.deb
.
libwebkitgtk-1.0-common_1.8.0-0ubuntu2_all.deb

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

3. Приносим полученные таким образом пакеты на работу (или в другое место), копируем папку GIMP в домашнюю папку.

4. Запускаем терминал и вводим команды:

sudo -i
вводим пароль
cd /home/login/GIMP
dpkg -i *.deb
дожидаемся окончания установки
apt-get install -f -y

Если после установки выясняется, что некоторые пакеты оказались не до конца настроены, команду dpkg -i *.deb следует повторить еще раз.

Я использую Ubuntu 12.04 у себя дома, у меня хорошее интернет-соединение, и моя система работает нормально.

У одного из моих друзей небольшой офис, и он думает перейти с Windows на Ubuntu 11.10 или выше. Проблема в том, что у него нет подключения к интернету.

Он спрашивает меня, есть ли возможность установить все обновления без интернета. Я делаю много поиска, я нашел этот вопрос, который говорит, что использование Keryx или Synaptic Manager сделает это.

введите описание здесь

Но я использую 11.04, и в этом нет менеджера Synaptic, поэтому я создаю и загружаю скрипт. Другим способом, когда я пытаюсь установить keryx (на любую свежую систему установки, на которой мне нужно получить обновления, или систему, имеющую подключение к Интернету)

Это показывает мне ошибку, что у меня нет python. Но у меня это

введите описание здесь

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

  • Как я устанавливаю обновления без интернета на свежую установку Ubuntu.
  • Как я устанавливаю ubuntu-restricted-extras

Насколько я знаю, вы не можете загружать обновления для системы Oneiric (11.10) с помощью Ubuntu Natty (11.04). У вас должна быть работающая система Ubuntu 11.10.

Эскиз о процессе, которому мы следуем:

  1. Сначала мы установим Виртуальную машину в OP Natty (11.04).
  2. Мы установим Ubuntu 11.10 на эту виртуальную машину
  3. Мы настроим виртуальную машину, чтобы иметь общую общую папку между хост-ОС (11.04) и гостевой ОС (11.10)
  4. Мы сгенерируем скрипт загрузки пакетов, необходимых для обновления этой системы (гостевая ОС, то есть Ubuntu 11.10).
  5. Мы перенесем скрипт загрузки в хост-систему, используя общую папку, настроенную на шаге 3.
  6. В хост-ОС мы загрузим все необходимые пакеты с помощью скрипта загрузки, который мы получили в шаге 5.
  7. Мы перенесем все загруженные файлы.deb в автономную систему, то есть в систему Ubuntu 11.10, на ПК его друга.
  8. Мы создадим локальный репозиторий на ПК его друга с этими пакетами.
  9. Мы обновим Ubuntu друзей OP с помощью локального репозитория, созданного на шаге 8.

Есть два способа иметь работающую систему Oneiric.

Делая фактическую установку

Вы должны установить Ubuntu Oneiric (11.10) на компьютер с подключением к Интернету. Хотя это также возможно с работающей системы, работающей с USB или CD, я рекомендую установить. Вы можете получить помощь по установке Ubuntu по этим ссылкам:

Установка Oneiric в виртуальной машине VirtualBox

Чтобы установить VirtualBox в Ubuntu 11.04 Natty Narwhal, выполните следующие команды в терминале:

Затем установите Oneiric в виртуальной машине.

Настройте общую папку на виртуальной машине.

Вам необходимо установить VirtualBox Guest Additions, чтобы включить функцию общей папки. Запустите эту команду на виртуальной машине, чтобы установить это:

Если вам нужна помощь по включению функции общих папок в VirtualBox, проверьте эту ссылку:

Пожалуйста, обратите внимание на эти конкретные моменты:

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

Не беги sudo apt-get clean или же sudo apt-get autoclean потому что эти команды удаляют файлы.deb из кэша.

Затем загрузитесь в систему Oneiric, которая имеет подключение к Интернету (либо из установленной системы, либо из VirtualBox), и выполните следующую процедуру:

Установите менеджер пакетов Synaptic. Выполните эти команды в терминале для этого: (Примечание. Вы должны подключить виртуальную машину к Интернету, без доступа к Интернету машина не может обновить список пакетов)

Вы также можете скачать пакеты, необходимые для ubuntu-restricted-extras пакет. Для этого выполните эту команду дополнительно с предыдущими двумя командами

Эта команда не устанавливает пакеты, а только загружает их со всеми зависимостями в /var/cache/apt/archives папка.

изображение окна дополнительной отметки

Когда вас спросят, хотите ли вы пометить дополнительные требуемые изменения, нажмите кнопку "Отметить".

Затем перейдите в File -> Generate package download script, сохраните скрипт как файл. Будь как будет update-downloader.sh в папке с именем Updates , Мы предполагаем, что Updates папка находится в вашем домашнем каталоге, т.е. в /home/username , Затем закройте Synaptic.

Теперь загрузите файлы.deb.

Перейдите в папку Updates, где вы сохранили update-downloader.sh ,

Пока ты еще в Терминале и имеешь cd Перейдите в папку " Обновления ", которую вы создали ранее, и запустите эту команду:

Это копирует загруженные файлы.deb, которые используются для установки Synaptic Package Manager, и файлы, загруженные для ubuntu-restricted-extras пакет.

Затем запустите эту команду sh ./update-downloader.sh загрузить все файлы.deb, необходимые для обновления, в текущей папке (т. е. в Updates папка.

Или же

Кроме того, вы можете передать Updates папка с несколькими файлами.deb, из которых вы только что скопировали /var/cache/apt/archives с update-downloader.sh Сценарий в нем для операционной системы через функцию общей папки VirtualBox.

Затем в хост-системе Ubuntu откройте терминал и выполните приведенную ниже команду, перейдя в папку Updates, которую вы только что скопировали из гостевой ОС, с помощью функции общей папки, где update-downloader.sh файл находится:

Если вы загрузили файлы.deb в виртуальную машину, на этом шаге перенесите папку Updates с этими файлами, используя функцию общей папки Virtual Box. (Этот шаг требуется только в том случае, если вы загрузили файлы на виртуальной машине)

После того, как вы получите папку Updates со всеми файлами.deb на вашем хост-компьютере (т. Е. В вашей системе Natty), скопируйте эту папку со всеми файлами на флэш-накопителе USB. Вы также можете записать DVD с этими пакетами, хотя я не рекомендую это.

Передать Updates папку с помощью вашего USB-накопителя (или CD/DVD, если вы их записали) на ПК вашего друга.

Скопируйте всю папку с именем Updates на компьютер без интернета. Поместите эту папку в каталог. Допустим, вы поместили папку Updates в домашнюю директорию. Создайте новый каталог в вашей домашней папке с именем offline и переместить Updates папка в offline папка. Теперь структура каталогов выглядит следующим образом

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

Это создаст файл с именем Packages ,

Теперь откройте /etc/apt/sources.list файл с полномочиями root. В терминале сделайте это

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

Затем сохраните файл с помощью Ctrl + S и выйдите из текстового редактора gedit.

Не забудьте использовать точные имена папок / путей для автономной папки и заменить username с логином пользователя.

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

Бежать sudo apt-get update в терминале, чтобы менеджер пакетов распознал ваш локальный каталог обновлений.

Затем выполните эту команду для обновления автономной системы:

Готово! Вы обновили свою систему без доступа в Интернет.

Некоторые заметки:

1. Не хотите каждый раз писать опцию "разрешить без аутентификации"?

Если вы хотите использовать этот локальный репозиторий для установки пакетов время от времени, но вам скучно всегда использовать это allow-unauthenticated вариант, сделай это.

Создайте файл с именем 99mysettings в /etc/apt/apt.conf.d с помощью gedit, добавьте строку в этот файл и сохраните.

Чтобы открыть файл с именем 99mysettins в этом каталоге с полномочиями root, используйте эту команду в терминале.

2. Примечание о разрешении-неаутентифицированной опции:

Вы можете спросить, почему я предоставил --allow-unauthenticated вариант. Это используется, потому что ваш локальный репозиторий обновлений не является аутентичным для системы. Но это не повредит, потому что вы скачали эти пакеты из подлинного официального репозитория Ubuntu.

3. Я хочу иметь доверенный репозиторий:

Посмотрите этот удивительный и эпический пост на форумах Ubuntu о создании надежного локального репозитория. Если вы создаете доверенное хранилище, вам не нужно предоставлять --allow-unauthenticated вариант больше.

Читайте также: