|
Создание локального репозиторя DEBIAN Linux на основе "образцовой" системы. |
Установку Debian Linux я рекомендую производить со стандартного CD диска (CD-1).
Образ диска можно скачать с www.debian.org.
Данный образ диска содержит необходимый минимум пакетов.
Для полноценной установки необходимо подключение к сети.
(Желательно, чтобы "образцовая" система всегда была подключена к сети).
Для поноценной работы понадобятся два дополниленьных пакета:
mc - консольный файловый менеджер.
synaptic - GUI-шный удобный менеджер пакетов.
~ su
# apt-get install mc synaptic
Для создания первого репозитория понадобится скрипт закачки, созданный с помощью synaptic:
1) Запустите synaptic.
2) Найдите фильтр "Установленные пакеты".
3) Выберите все установленные пакеты и выберите "Переустановить".
4) Без переустоновки сгенерируйте скрипт загрузки (Apt-download-defaults.sh, например) и выйдите из программы.
Данный скрипт содержит указания не только на сетевые репозитории, но и на пакеты с CD-диска.
Пакеты с CD-диска скачивать не надо (их просто скопируем в дальнейшем),
поэтому удалим эти строки из скрипта командой:
~ sed -i -e '/wget -c cdrom:/d' Apt-download-defaults.sh
Теперь скрипт содержит только ссылки на скачиваемые пакеты.
Скопируем его на внешний раздел, на котором собираемся фомировать локальные репозитории.
(желательно, чтобы раздел имел метку, тогда он примонтируется в /media/'DISK-LABEL').
В операции копирования поможет консольный менеджер mc, хотя можно и ручками.
Например, внешний раздел имеет метку "DATA" и уже примонтирован.
~ ls /media
~ ls /media/DATA
~ mkdir /media/DATA/debian-6.0.6-i386
~ mkdir /media/DATA/debian-6.0.6-i386/apt
~ mkdir /media/DATA/debian-6.0.6-i386/apt/defaults
~ cp ~/Apt-download-defaults.sh /media/DATA/debian-6.0.6-i386/apt/defaults
После этого запускаем скрипт скачки пакетов.
~ cd /media/DATA/debian-6.0.6-i386/apt/defaults
~ bash Apt-download-defaults.sh
По завершению скачки, копируем в эту же папку пакеты с диска.
~ cp /media/cdrom/pool ./
Репозиторий почти готов. Осталась небольшая доводка.
Распределение скачанных пакетов по секциям.
(для удобства хранения).
В этом поможет скрипт Apt-packages-section-1s.sh.
Скопируем данный скрипт в корень репозитория и запустим.
~ cd /media/DATA/debian-6.0.6-i386/apt/defaults
~ bash Apt-packages-section-1s.sh
PS: Apt-packages-section-1s.sh.gz.
Очистка репозитория от устаревших и неиспользуемых пакетов.
(а так же их индексирование).
В этом поможет скрипт Apt-packages-old-backup-1s.sh.
Скопируем данный скрипт в корень репозитория и запустим.
~ cd /media/DATA/debian-6.0.6-i386/apt/defaults
~ bash Apt-packages-old-backup-1s.sh
PS: Apt-packages-old-backup-1s.sh.gz.
В завешении работы скрипт проверит настройки репозиториев /etc/apt/sources.list
и укажет какую запись надо в него добавить.
Для текущего примера, это:
deb file:/media/DATA/debian-6.0.6-i386/apt/defaults ./
После этого CD-ром можно исключить из источников (закоменттровав):
#deb cdrom:///...
Для проверки наличия локального репозиторя в списке подключенных репозиториев имеется отдельный скрипт Apt-packages-test-1s.sh.
PS: Apt-packages-test-1s.sh.gz.
Для переиндексации репозитория без отсева пакетов также имеется отдельный скрипт Apt-packages-list-update-1s.sh.
PS: Apt-packages-list-update-1s.sh.gz.
Перенос репозитория осуществляется в виде тулбаров с помощью флешек или через сеть:
~ cd /media/DATA/debian-6.0.6-i386/apt
~ tar -czvf apt-2012-12-17-defaults.tar.gz defaults
~ cp apt-2012-12-17-defaults.tar.gz /media/usb0
Флешка переносится на компьютер без сети:
~ mkdir -p /media/JOB/linux/debian-6.0.6-i386/apt
~ cd /media/JOB/linux/debian-6.0.6-i386/apt
~ cp /media/usb0/apt-2012-12-17-defaults.tar.gz ./
~ tar -xzvf apt-2012-12-17-defaults.tar.gz
~ cd defaults
~ bash Apt-packages-test-1s.sh
Включается локальный репозиторий в список репозиториев (согласно указаниям скрипта) и производится апгрейд и доустановка пакетов:
~ su
# mcedit /etc/apt/sources.list
Добавляется строка (для текущего примера):
deb file:/media/JOB/linux/debian-6.0.6-i386/apt/defaults ./
Апгрейд:
# apt-get update
# apt-get upgrade
# apt-get install synaptic
Доустановка с помощью synaptic (фильтр "Неустановленные"):
# synaptic
По завершению:
# exit
~
В предыдущих разделах объяснялся порядок формирования локального репозитория общего назначения, для установки полнофункциональной системы Debian Linux на машины без сети.
В этом разделе будет объясннено формирование локального репозитория "для себя" - коллекции пакетов с субективным уклоном.
(Например, я в повседневной работе использую xfce, conky и R-Studio[GUI для статистической системы R]. В стандартной установке этого нет, более того R-Studio нет и в стандартных репозиториях).
Устанавливаем необходимые программы в "образцовой" системе стандартными способами.
Из официальных репозиториев:
~ su
# apt-get install [через пробел список программ-пакетов]
или через synaptic:
~ su
# synaptic
по завершению:
# exit
~
Отдельные пакеты, отсутствующие в оффициальных репозиториях:
~ su
# dpkg -i [через пробел имена файлов скачанных пакетов]
# apt-get -f install
последняя команда необходима для удовлетворения зависимостей (и, соответственно, нормальной работы системы)
по завершению:
# exit
~
Создание локального репозитория производится почти также, как и во втором разделе, за исключением того, что все пакеты уже скачаны. Понадобятся следующие скрипты:
Apt-packages-list-update-1s.sh.gz - скрипт создания индекса пакетов
Apt-packages-old-backup-1s.sh.gz - скрипт отсева устаревших пакетов
Apt-packages-section-1s.sh.gz - скрипт распределения пакетов по секциям
Apt-packages-test-1s.sh.gz - скрипт проверки подключения локального репозитория
и еще один скрипт:
Apt-packages-get-cache-1s.sh.gz - скрипт копирования пакетов из кеша
Создайте папку для нового репозитория и скопируйте скриты в нее. Например:
~ cd /media/DATA/debian-6.0.6-i386/apt
~ mkdir updates
~ cd updates
~ cp ~/Apt-*.sh.gz ./
Все скрипты упакованы gzip-ом. Для распаковки используйте команду:
~ cd /media/DATA/debian-6.0.6-i386/apt/updates
~ gzip -d [имя скрипта].gz
Используйте скрипты в следующем порядке:
~ cd /media/DATA/debian-6.0.6-i386/apt/updates
~ bash Apt-packages-get-cache-1s.sh
~ bash Apt-packages-section-1s.sh
~ bash Apt-packages-list-update-1s.sh
Скрипт Apt-packages-old-backup-1s.sh понадобится в случае обновления системы новыми версиями пакетов:
~ cd /media/DATA/debian-6.0.6-i386/apt/updates
~ bash Apt-packages-get-cache-1s.sh
~ bash Apt-packages-section-1s.sh
~ bash Apt-packages-old-backup-1s.sh
Скрипт Apt-packages-test-1s.sh понадобится после переноса репозитория на машину без сети.
По завершению работы скриптов тулбарим репозиторий и переносим его, как в предыдущей главе.
~ cd /media/DATA/debian-6.0.6-i386/apt
~ tar -czvf apt-2012-12-18-updates.tar.gz updates
~ cp apt-2012-12-18-updates.tar.gz /media/usb0
После этого удаляем старые версии пакетов и зачищаем кеш.
~ cd /media/DATA/debian-6.0.6-i386/apt/apt-backup
~ rm *
~ su
# apt-get clean
# exit
~
17 декабря 2012г.
Made in Terra No Names.