|
Свой локальный репозиторий. |
|
|
|
|
Автор: t0x1n
|
|
19.03.2008 00:33 |
Когда портится установленный дистрибьютив Ubuntu Linux (хотя это бывает крайне редко) и приходит время его переустанавливать, то жалко терять мегабайты скаченных пакетов, обновлений, программ. Или же Ваш друг хочет поставить себе те же программы, что и у Вас, но выхода в интернет у него нету, тут и пригодится локальный репозитарий, который можно записать на DVD/CD диск, или скинуть на локальный ftp сервер, а уже оттуда с большей легкостью ставить пакеты и обновления для системы.
Обычно пакеты, скаченные программой apt-get, хранятся в директории /var/cache/apt/archives. Поэтому, точку монтирования /var при установки системы лучше делать на отдельный раздел диска, после переустановки системы ваши пакеты, которые хранятся в кеше не будут теряться. Но проблема в том, что когда кеш достигает определенно размера он автоматически очищается следовательно пакеты в нем потираются. Поэтому есть более эффективный и удобный способ сборки установленных в системе пакетов, который я опишу ниже.
Собираем руками:
Создадим директорию arch в удобном для Вас месте (я выбрал /home/user):
mkdir /home/user/arch
В ней еще поддиректорию deb:
mkdir /home/user/arch/deb
Теперь копируем все deb пакеты из /var/cache/apt/archives/ в /home/user/arch/deb:
cp /var/cache/apt/archives/*.deb /home/user/arch/deb
Скачиваем и устанавливаем пакет dpkg-dev:
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install dpkg-dev
Теперь нам нужно создать индексные файлы для наших пакетов утилитой dpkg-scanpackages (из пакета dpkg-dev), которые будет использовать утилита apt-get:
cd /home/user/arch/deb
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
Вот и все, осталось добавить новый репозиторий в /etc/apt/sources.list:
sudo echo "deb file:/home/user/arch/deb ./" >>/etc/apt/sources.list
И обновим все листы:
sudo apt-get update
Вот и все, наш локальный репозиторий создан ;-)
Более простой метод. Использование утилиты apt-move:
Устанавливаем утилиту apt-move:
sudo apt-get install apt-move
Формируем мастер-файл:
sudo apt-move get
Переносим все пакеты из /var/cache/apt/archives в /mirrors:
apt-move move
Удаляем устаревшие пакеты:
apt-move delete
Создадим Packages.gz и Sources.gz дерева локального зеркала:
apt-move packages
Собираем установленные пакеты:
Как я уже говорил, пакеты в /var/cache/apt/archives хранятся не вечно (это так сказать темп). Поэтому многие установленные пакеты в этой директории потираются. Есть очень простой метод сборки всех установленных пакетов в системе в одну директорию:
mkdir /home/user/deb
cd /home/user/deb
sudo dpkg --get-selections | grep -v "deinstall" | awk '{print $1}' | xargs dpkg-repack
Процесс может занять некоторое время (в зависимости от количества установленных пакетов), так что можете спокойно выпить чашку чая (или кофе, кто как любит ;-) ) и подождать пока все пакеты не соберутся (кстати если завершить выполнение скрипта посредством нажатия комбинации клавиш Ctrl+C, то после повторного запуска скрипта процесс сборки пакетов начнется не сначала, а будет продолжаться дальше). После того как скрипт завершит свое выполнение, в директории /home/user/dev вы обнаружите кучу deb файлов. Далее дело за Вами, как я описывал выше остается только создать индексные файлы и прописать ссылку в файл /etc/apt/sources.list
Для тех кто не дружит с консолью, есть очень простая и дружелюбная GUI утилита APTonCD (sudo apt-get install aptoncd). Она все сделает за Вас. Ею можно собрать все пакеты и добавить свои дополнительные, а затем создать iso образ диска и записать его на CD или DVD командой cdrecord -v -eject speed=4 -dev=/dev/hdc my_repo.iso, где my_repo.iso образ диска, который вы создали.
|
|
Обновлено ( 19.03.2008 21:22 )
|
Комментарии
Warpc: Обычными программами, теми же, что используются для работы с интернет-репозитарями. Подробнее про установку ПО в Runtu читайте http://runtu.org/faq-howto/39-candidate-min/75-install-programs . Если остались вопросы, с радость постараемся ответить на них на нашем форуме. Ответить | Ответить с цитатой | Цитировать