HOWTO Обновление пакетов без доступа в интернет непосредственно из системы

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск
Вернуться в раздел руководства

Содержание

[править] Введение

В моем случае это понадобилось в следующей (я полагаю довольно распространенной) ситуации: дома - нет интернета (дорогой, медленный - нужное подчеркнуть :) ), а на работе - хороший и бесплатный. Итак для начала необходимо получить список нужных пакетов. В этом примере мы хотим установить/обновить glibc baselayout texinfo gettext zlib binutils gcc ncurses. Список мы сохраняем на устаревший магнитный носитель, но счастливые обладатели более надежных носителей естественно могут пользоваться ими.

[править] Получение списка для скачивания

Code:

# emerge -fp glibc baselayout sys-apps/texinfo gettext zlib binutils gcc ncurses 2> stage1.list
# mount -t vfat /dev/fd0 /mnt/floppy
# cp /mnt/gentoo/stage1.list /mnt/floppy
# umount /mnt/floppy

Примечание: Не забывайте '2' перед '>'

[править] Получение обновлений

Теперь вставляем дискету в компьютер с хорошим каналом (в моём случае это рабочий компьютер) и "натравливаем" на него скрипт, который я назвал upgrade.sh

Code: upgrade.sh
#!/bin/sh 
if ! [ -d download ]
 then
       mkdir download
fi
for i in `cut -f 1 -d ' ' $1` ; do 
   file_to_download=`echo $i | awk -F '/' '{ print $NF; }'` 
   if [ -f /usr/portage/distfiles/$file_to_download ]
then
      echo "Fetch to" $file_to_download
      cp  /usr/portage/distfiles/$file_to_download download
    else
         wget $i -P download
    fi
done


Устанавливаем права для запуска:

# chmod 755 upgrade.sh

Запускаем скрипт, введя команду:

# upgrade.sh stage1.list

Скрипт создаст в текущем каталоге каталог download, перепишет все необходимые файлы из distfiles, а что не найдёт в репозитории - скачает из интернета.

[править] Проверка

Получив все файлы в каталоге download, переносим их в наш компьютер в /usr/portage/distfiles. И для проверки запустим

# emerge -pv glibc baselayout gettext zlib binutils gcc ncurses

Если в строке Total Download: указана цифра 0 - значит все было сделано верно. Можно теперь запускать установку:

[править] Обновление системы

# emerge glibc baselayout gettext zlib binutils gcc ncurses

[править] Источники

Личные инструменты