14 апреля 2010 г.

Обновление системы без интернета

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

Итак, инструкция по обновлению системы на компьютере без интернета.

1. Открыть файл /etc/apt/sources.list - это список репозиториев. Строки в этом файле подобный вид:

deb http://ru.archive.ubuntu.com/ubuntu/ karmic main restricted
Из этой строки легко получить адрес в интернете, по которому находится список пакетов из этого репозитория:
http://ru.archive.ubuntu.com/ubuntu/dists/karmic/main/binary-amd64/Packages.gz
http://ru.archive.ubuntu.com/ubuntu/dists/karmic/restricted/binary-amd64/Packages.gz
Общий принцип должен быть понятен. Если система 32-битная, то вместо binary-amd64 нужно писать binary-i386.

2. Скачать файл Packages.gz с полученного адреса, разархивировать его и переименовать файл, извлечённый из архива по следующему образцу:

ru.archive.ubuntu.com_ubuntu_dists_karmic_main_binary-amd64_Packages
Всё то же самое проделать для всех репозиториев (ну или выборочно, если известно точно, какие конкретно нужны).

3. Полученные файлы скопировать в /var/lib/apt/lists (доступ только у суперпользователя)

4. Затем набираем команду:

  • для обновления системы:
  • apt-get --print-uris -y dist-upgrade | grep "^'" | awk '{ print $1 }' | sed "s/'//g" > packages.lst
  • для обновления определённой программы (пример для wine):
apt-get --print-uris -y install wine | grep "^'" | awk '{ print $1 }' | sed "s/'//g" > packages.lst

5. В итоге получим файл packages.lst, в котором содержаться прямые ссылки на скачивание нужных пакетов. Нужно скачать файлы по этим ссылкам (можно через какую-нибудь массовую качалку с любого компьютера, имеющего выход в интернет).

6. Полученные файлы переносим любым способом на компьютер с системой, требующей обновления и записываем в папку /var/cache/apt/archives (с правами суперпользователя).

7. Осталось выполнить непосредственно обновление:

  • для полного обновления системы:
  • sudo aptitude dist-upgrade
  • для установки определённого пакета (выше был пример с вайном):
sudo aptitude install wine

Помимо этого сложного на вид танца с бубном, при необходимости установки просто нескольких программ, всегда можно скачать deb-пакеты напрямую из интернета и установить просто запустив через gdebi или в консоли с помощью dpkg.

  • Пакеты часто можно найти на официальных сайтах программ
  • Пакеты программ, входящие в официальные репозитории убунты можно скачать с сайта packages.ubuntu.com
  • Если программа уже ранее устанавливалась на компьютер и даже если она потом была удалена, её установочный пакет лежит в /var/cache/apt/archives/, если не производилась чистка этой директории.

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

Комментариев нет:

Отправить комментарий