Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Установка новых программных пакетов

Локальный депозитарий.

Александр Благин
linux@yaroslavl.ru

После установки дистрибутива Linux необходима работа с банком программ. Что-то необходимо удалить, что-то доустановить. Обновить иногда. Проверить целостность системы. Для этого в дистрибутиве (не во всех) есть замечательная система - apt. Можно конечно работать и с дисками, показав их системе с помощью команды apt-cdrom add, но это весьма неудобно. Постоянно приходиться переставлять диски, искать названия пакетов. Можно поступить по другому. Переписать диски на винчестер (обьемы накопителей сейчас не маленькие) и работать с образами дисков прямо с винчестера. Сейчас я попытаюсь объяснить, как это сделать.


1. создаем каталог - например:   /home/ALTLinux/ISO

2. переписываем туда диски в виде образов:

   dd if=/dev/cdrom of=/home/ALTLinux/ISO/Master22_1.iso
   dd if=/dev/cdrom of=/home/ALTLinux/ISO/Master22_2.iso
   dd if=/dev/cdrom of=/home/ALTLinux/ISO/Master22_3.iso
   dd if=/dev/cdrom of=/home/ALTLinux/ISO/Master22_4.iso
   dd if=/dev/cdrom of=/home/ALTLinux/ISO/Master22_5.iso
   dd if=/dev/cdrom of=/home/ALTLinux/ISO/Master22_6.iso
   dd if=/dev/cdrom of=/home/ALTLinux/ISO/Master22_7.iso
   dd if=/dev/cdrom of=/home/ALTLinux/ISO/Master22_8.iso
   dd if=/dev/cdrom of=/home/ALTLinux/ISO/Master22_9.iso
   (девятый диск в процессе не участвует, сохраняем ради резервной копии)

3. создаем девять пустых каталогов:

   /home/ALTLinux/Master/Master_1
   /home/ALTLinux/Master/Master_2
   /home/ALTLinux/Master/Master_3
   /home/ALTLinux/Master/Master_4
   /home/ALTLinux/Master/Master_5
   /home/ALTLinux/Master/Master_6
   /home/ALTLinux/Master/Master_7
   /home/ALTLinux/Master/Master_8
   /home/ALTLinux/Master/Master_9

4. монтируем туда образы дисков:
   
   mount -t iso9660 /home/ALTLinux/ISO/Master22_1.iso /home/ALTLinux/Master/Master_1 -o loop
   mount -t iso9660 /home/ALTLinux/ISO/Master22_2.iso /home/ALTLinux/Master/Master_2 -o loop
   mount -t iso9660 /home/ALTLinux/ISO/Master22_3.iso /home/ALTLinux/Master/Master_3 -o loop
   mount -t iso9660 /home/ALTLinux/ISO/Master22_4.iso /home/ALTLinux/Master/Master_4 -o loop
   mount -t iso9660 /home/ALTLinux/ISO/Master22_5.iso /home/ALTLinux/Master/Master_5 -o loop
   mount -t iso9660 /home/ALTLinux/ISO/Master22_6.iso /home/ALTLinux/Master/Master_6 -o loop
   mount -t iso9660 /home/ALTLinux/ISO/Master22_7.iso /home/ALTLinux/Master/Master_7 -o loop
   mount -t iso9660 /home/ALTLinux/ISO/Master22_8.iso /home/ALTLinux/Master/Master_8 -o loop
   mount -t iso9660 /home/ALTLinux/ISO/Master22_9.iso /home/ALTLinux/Master/Master_9 -o loop

5. в файле /etc/apt/apt.conf исправляем путь к cdrom с 

   /mnt/cdrom на /home/ALTLinux/Master/

   далее говорим: apt-cdrom -m add (-m - не монтировать)

   далее проверяем /etc/apt/source.list и удаляем из него все лишнее:

   исходная картина выглядит так:

   rpm-src cdrom:[Master 2.2 CD 1]/ Master_1/ALTLinux main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_1/Mandrake main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_2/ALTLinux main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_2/Mandrake main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_3/ALTLinux main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_3/Mandrake main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_4/ALTLinux addon insecure main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_4/Mandrake addon insecure main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_5/ALTLinux main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_5/Mandrake main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_6/ALTLinux main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_6/Mandrake main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_7/ALTLinux main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_7/Mandrake main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_8/ALTLinux compat main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_8/Mandrake compat main
   rpm-src cdrom:[Master 2.2 CD 1]/ Master_8/i586 upgrade
   rpm-src cdrom:[Master 2.2 CD 1]/ updates/i586 updates
   rpm cdrom:[Master 2.2 CD 1]/ Master_1/ALTLinux main
   rpm cdrom:[Master 2.2 CD 1]/ Master_1/Mandrake main
   rpm cdrom:[Master 2.2 CD 1]/ Master_2/ALTLinux main
   rpm cdrom:[Master 2.2 CD 1]/ Master_2/Mandrake main
   rpm cdrom:[Master 2.2 CD 1]/ Master_3/ALTLinux main
   rpm cdrom:[Master 2.2 CD 1]/ Master_3/Mandrake main
   rpm cdrom:[Master 2.2 CD 1]/ Master_4/ALTLinux addon insecure main
   rpm cdrom:[Master 2.2 CD 1]/ Master_4/Mandrake addon insecure main
   rpm cdrom:[Master 2.2 CD 1]/ Master_5/ALTLinux main
   rpm cdrom:[Master 2.2 CD 1]/ Master_5/Mandrake main
   rpm cdrom:[Master 2.2 CD 1]/ Master_6/ALTLinux main
   rpm cdrom:[Master 2.2 CD 1]/ Master_6/Mandrake main
   rpm cdrom:[Master 2.2 CD 1]/ Master_7/ALTLinux main
   rpm cdrom:[Master 2.2 CD 1]/ Master_7/Mandrake main
   rpm cdrom:[Master 2.2 CD 1]/ Master_8/ALTLinux compat main
   rpm cdrom:[Master 2.2 CD 1]/ Master_8/Mandrake compat main
   rpm cdrom:[Master 2.2 CD 1]/ Master_8/i586 upgrade
   rpm cdrom:[Master 2.2 CD 1]/ updates/i586 updates

   удаляем все строчки содержащие "/Mandrake"
   и заменяем "cdrom:[Master 2.2 CD 1]/" на "file:/home/ALTLinux/Master/"

   должно получиться следующее:

   rpm-src file:/home/ALTLinux/Master Master_1/ALTLinux main
   rpm-src file:/home/ALTLinux/Master Master_2/ALTLinux main
   rpm-src file:/home/ALTLinux/Master Master_3/ALTLinux main
   rpm-src file:/home/ALTLinux/Master Master_4/ALTLinux addon insecure main
   rpm-src file:/home/ALTLinux/Master Master_5/ALTLinux main
   rpm-src file:/home/ALTLinux/Master Master_6/ALTLinux main
   rpm-src file:/home/ALTLinux/Master Master_7/ALTLinux main
   rpm-src file:/home/ALTLinux/Master Master_8/ALTLinux compat main
   rpm-src file:/home/ALTLinux/Master Master_8/i586 upgrade
   rpm-src file:/home/ALTLinux/Master updates/i586 updates
   rpm file:/home/ALTLinux/Master Master_1/ALTLinux main
   rpm file:/home/ALTLinux/Master Master_2/ALTLinux main
   rpm file:/home/ALTLinux/Master Master_3/ALTLinux main
   rpm file:/home/ALTLinux/Master Master_4/ALTLinux addon insecure main
   rpm file:/home/ALTLinux/Master Master_5/ALTLinux main
   rpm file:/home/ALTLinux/Master Master_6/ALTLinux main
   rpm file:/home/ALTLinux/Master Master_7/ALTLinux main
   rpm file:/home/ALTLinux/Master Master_8/ALTLinux compat main
   rpm file:/home/ALTLinux/Master Master_8/i586 upgrade
   rpm file:/home/ALTLinux/Master updates/i586 updates
      
   кто внимательный, заметил, что присутствуют две нелишние строки:

   rpm-src file:/home/ALTLinux/Master updates/i586 updates
   rpm file:/home/ALTLinux/Master updates/i586 updates

   в каталоге /home/ALTLinux/Master/updates
   находятся выкачанные обновления на дистрибутив

   структура следующая:

   updates ---
              SRPMS
              ~SRPMS.updates
              i586 --- 
                      RPMS
                      ~RPMS.updates
                      base

   перед использованием депозитария даем команды:

   genbasedir -progress -topdir=/home/ALTLinux/Master/updates i586 updates
   apt-get update

   вот вроде и все.

   для полноты счастья создаем в удобном для вас месте каталоги RPMS и SRPMS

   и линкуем туда все пакеты
   
   (
    это как ? - это так !
    переходим в свой созданный каталог RPMS
    и например пишем:
    ln -s [путь к примонтированному каталогу диска]/RPMS.main \
     `ls -1 [путь к примонтированному каталогу диска]` ./
    и все линки создались
   )

   Теперь у Вас все названия пакетов в виде линков в одном каталоге.
   Нажав прямо на линке, в mc например F3, смотрим что за пакет.
   Далее используем его по назначению.

   А вот теперь все.

   Дополнения, исправления приветствуются

   21 марта 2003 года
   Александр Благин
   Ярославль

   http://linux.yaroslavl.ru
   linux[sobaka]yaroslavl.ru