|
|||||||
создание собственного репозитария на основе кеша apt
Время создания: 12.06.2012 14:32
Раздел: linux
Запись: lesnik757/mytetra/master/base/13394899397owxfxvdl9/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
создание собственного репозитария на основе кеша apt создаём папку, к которой будут иметь доступ другие компьютеры это может быть либо ftp сервер, либо папка для записи на CD/DVD 1. mkdir $HOME/my-repo затем переходим в папку с кешем либо скопление deb файлов 2. cd /var/cache/apt/archives/ командуем сгенерировать список пакетов и описаний 3. dpkg-scanpackages . /dev/null | gzip -9c > $HOME/my-repo/Packages.gz этот конвеер просканирует весь список пакетов текущей папке (/var/cache/apt/archives/) выдаст список описаний пакетов, заархивирует и сложит в файл $HOME/my-repo/Packages.gz кстати, будет сгенерирован список самых свежих версий пакетов, все устаревшие будут пропушенны файл Packages.gz будет обрабатывать утилитой обновления списка пакетов теперь нам надо выдрать из этого списка имена файлов пакетов чтобы увидеть что нам надо выполните команду cat $HOME/my-repo/Packages.gz |gunzip на каждый пакет будет блоке типа: Package: gnome-cards-data Source: gnome-games Version: 1:2.20.1-0ubuntu1 Architecture: all Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com> Installed-Size: 1132 Conflicts: gnome-games-data (<< 1:2.17.3) Filename: ./gnome-cards-data_1%3a2.20.1-0ubuntu1_all.deb Size: 338958 MD5sum: 240bfb1cf608360626030f8baf092315 Section: gnome Priority: optional Description: data files for the GNOME card games This package contains pictures of card decks used by the card-based GNOME games. Different themes are provided. нам интересна строка: Filename: ./gnome-cards-data_1%3a2.20.1-0ubuntu1_all.deb высекаем её следующим образом: cat $HOME/my-repo/Packages.gz |gunzip |grep "^Filename: " а точнее только имя файла ./gnome-cards-data_1%3a2.20.1-0ubuntu1_all.deb cat $HOME/my-repo/Packages.gz |gunzip |grep "^Filename: " | awk '{ print $2 }' теперь надо преобразовать из списка в длинную строку, чтобы передать её команде ... cat $HOME/my-repo/Packages.gz |gunzip |grep "^Filename: " | awk '{ print $2 }'|xargs ну а теперь передаём эту конструкцию команде cp, для копирования в созданную нами папку cp `cat $HOME/my-repo/Packages.gz |gunzip |grep "^Filename: " | awk '{ print $2 }' |xargs ` $HOME/my-repo/ для создания образа диск для записи можно использовать команду mkisofs -r -V "my-repo" -o $HOME/my-repo.iso $HOME/my-repo/ после того как команда отработет, в $HOME/my-repo/ будет локальный репозитарий если эту папку записать на CD/DVD и смонтировать этот диск в /media/cdrom то в /etc/apt/sources.list в самое начало нужно добавить строчку deb file:/media/cdrom/my-repo/ ./ а если папка my-repo будет доступна на ftp по ftp://server-url/os/linux/ubuntu/my-repo то в /etc/apt/sources.list в самое начало нужно добавить строчку deb ftp://server-url/os/linux/ubuntu/my-repo ./ после того как добавили эту строчку делаем apt-get update и всё, теперь синаптик знает все пакеты с вашего локального репозитария для ленивых приведу полный текст команды создания локального репозитария (одной строкой): sudo apt-get install dpkg-dev && mkdir $HOME/my-repo && cd /var/cache/apt/archives/ && dpkg-scanpackages . /dev/null | gzip -9c > $HOME/my-repo/Packages.gz && cp `cat $HOME/my-repo/Packages.gz |gunzip |grep "^Filename: " | awk '{ print $2 }' |xargs ` $HOME/my-repo/ && mkisofs -r -V "my-repo" -o $HOME/my-repo.iso $HOME/my-repo/ -------------------- ядоложик
koct9i 15.1.2008, 13:22 Сообщение #2 Завсегдатай Группа: Пользователи Сообщений: 205 Регистрация: 27.4.2007 Из: Москва - Киров Пользователь №: 1502 зачем? apt-cacher использовать нельзя? поботай ещё awk, grep | awk можно заменить одним авком, а cat | gunzip заменить на zcat xargs ты как-то странно с cp используешь, явно свалится при большом количестве пакетов -------------------- anidb
Ушелец 7.2.2008, 14:06 Сообщение #3 FAQ-мастер Группа: Пользователи Сообщений: 982 Регистрация: 22.12.2006 Пользователь №: 346 2ffsdmad Прежде чем запускать dpkg-scanpackages, нужно установить пакет dpkg-dev. По умолчанию он не установлен. А вообще, очень толковое и внятное руководство. Респект! Может, есть смысл переименовать тему в "HOW-TO создание локального репозитария"? -------------------- Незваный "Гость" хуже Гагарина (народная поговорка марсианских сисадминов) Как правильно задавать вопросы в технических форумах
ffsdmad 8.2.2008, 13:25 Сообщение #4 Ходжа Насреддин Группа: Пользователи Сообщений: 3327 Регистрация: 19.10.2006 Из: Киров Пользователь №: 87 Цитата(Ушелец @ 7.2.2008, 14:06) [snapback]145411[/snapback] 2ffsdmad Прежде чем запускать dpkg-scanpackages, нужно установить пакет dpkg-dev. По умолчанию он не установлен. А вообще, очень толковое и внятное руководство. Респект! Может, есть смысл переименовать тему в "HOW-TO создание локального репозитария"? для уточнения Код [b]sudo apt-get install dpkg-dev && .... но я забыл установить mkisofs вот она, команда сборки собственного репозитария Код sudo apt-get install dpkg-dev mkisofs; mkdir $HOME/my-repo && cd /var/cache/apt/archives/ && dpkg-scanpackages . /dev/null | gzip -9c > $HOME/my-repo/Packages.gz && cp `cat $HOME/my-repo/Packages.gz |gunzip |grep "^Filename: " | awk '{ print $2 }' |xargs ` $HOME/my-repo/ && mkisofs -r -V "my-repo" -o $HOME/my-repo.iso $HOME/my-repo/ |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|