Как добавить репозиторий Debian из CD или DVD-образов

Имеется несколько выкачанных ISO-образов с репозиториями, например Debian GNU/Linux, и нужно их подключить для работы. Не обязательно пропаливать их на диск и постоянно вставлять-извлекать диски. Можно примонтировать ISO-образы и добавить репозитории, чтобы пакеты стали доступны. Для опытных пользователей это, конечно, не вопрос, но новичкам это даётся нелегко. Ниже - краткий рецепт по этому поводу.

Итак, есть у вас к примеру несколько скачанных ISO-образов с репозиториями Debian, и нужно добавить репозитории для использования при установке программ.
Для ISO-файлов создадим точки монтирования вида /mnt/setup/disс-X где X является номером диска. В консоли даём команду:

$ sudo mkdir /mnt/setup/disс-1
или
# mkdir
/mnt/setup/disс-1
И так для каждого файла ISO. После того, как мы создали точки монтирования, приступаем к монтированию самих ISO-образов с репозиториями.

Допустим, что вы установили базовую систему с CD/DVD, но у вас только один диск, а репозитории в виде ISO-файлов хранятся на диске с NTFS. Возникает вопрос: как из базовой системы примонтировать DVD ISO-файлы с репозиториями Debian?

Например, файлы с репозиториями лежали в каталоге C:\debianlinux\debian-50r0-i386-DVD-1.iso Теперь же этот C:\ в Linux называется иначе, и мы ранее его примонтировали, скажем, к точке монтирования /mnt/windows Для того, чтобы примонтировать эти ISO-образы, нам нужно дать в данном примере такую команду от суперпользователя:
mount -t iso9660 /mnt/windows/debianlinux/debian-50r0-i386-DVD-1.iso /mnt/setup/disс-1 -o loop
Красным выделены параметры, остальная цветовая подсветка поясняет, как сконструировать полный путь до репозитория. Обращаю внимание горячих и нетерпеливых: слэши в Linux/UNIX отличаются от Windows и ставятся в другую сторону: /

Далее для всех остальных дисков всё тоже самое:
mount -t iso9660 /mnt/windows/debianlinux/debian-50r0-i386-DVD-2.iso /mnt/setup/disс-2 -o loop
mount -t iso9660 /mnt/windows/debianlinux/debian-50r0-i386-DVD-3.iso /mnt/setup/disс-3 -o loop

.......
Дальше можно сделать простой скрипт:
#! /bin/sh
sudo mount -t iso9660 /mnt/wd250Gb/debian-40r0-i386-DVD-1.iso /mnt/setup/etchdisk-1 -o loop
sudo mount -t iso9660
/mnt/wd250Gb/debian-40r0-i386-DVD-2.iso /mnt/setup/etchdisk-2 -o loop
sudo mount -t iso9660
/mnt/wd250Gb/debian-40r0-i386-DVD-3.iso /mnt/setup/etchdisk-3 -o loop

После этого надо дать скрипту права исполнения:
sudo chmod 755 ./debiandvd
eсли скрипт лежит в текущем каталоге.
Либо автоматизировать этот процесс так:
for ii in 1 2 3; do sudo mount -t iso9660 /mnt/wd250Gb/debian-40r0-i386-DVD-ii.iso /mnt/setup/disk-ii -o loop; done
Далее идём редактировать файл /etc/apt/sources.list с помощью nano:
# nano /etc/apt/sources.list
Для ISO-образов формат файла несколько отличается от формата для сетевых репозиториев:
deb http://ftp.debian.org/debian/ lenny contrib main non-free <--- это для сетевого репозитория
deb file:///mnt/setup/disс-1 lenny contrib main non-free <--- это для ISO-репозитория
Структура такова:
  • Фиолетовым выделен полный путь, с которого будут закачиваться пакеты, в данном случае это file:///mnt/setup/disс-1 и нужно добавить строки с другими номерами дисков, например file:///mnt/setup/disс-2 и file:///mnt/setup/disс-3 Обращаю внимание - слэшей именно три. Так надо.
  • Далее идёт версия дистрибутива - она должна совпадать с той, которую вы только что установили: lenny, squeeze, wheezy или другое (должно быть написано на CD/DVD диске или в имени ISO-файла, например debian-lenny-i386-DVD-3.iso).
  • Последним идут типы репозиториев: contrib main non-free подключайте всё сразу.
После этого надо выполнить
sudo aptitude update
и ставить появившиеся приложения через удобную графическую оболочку.

21 комментариев: |высказаться!| RSS-лента дискуссии.|
Анонимный комментирует...

Я, обычно, apt-cdrom пользую на добавление, причём в стандартный /cdrom и потом монтировать/размонтировать по необходимости.

Но так, в принципе, можно даже в fstab добавить навечно и пользовать не задумываясь.

virens комментирует...

2 Roman Khimov пишет...
Я, обычно, apt-cdrom пользую на добавление, причём в стандартный /cdrom
Это да, но интересно один раз примонтировать все ISOшники сразу.

Но так, в принципе, можно даже в fstab добавить навечно и пользовать не задумываясь.
В fstab там уже много чего добавлено "навечно". Но да, можно.

Roman Cheplyaka комментирует...

for i in 1 2 3; do sudo mount -t iso9660 /mnt/wd250Gb/debian-40r0-i386-DVD-$i.iso /mnt/setup/etchdisk$i -o loop; done

А если есть не 3 dvd, а 14 (или сколько их сейчас) cd, то вместо "1 2 3" использовать seq(1).

Анонимный комментирует...

Откровенно говоря, лично мне пррт подобной постановке задачи первое что пришло бы в голову - создать свой репозиторий.
Вся эта суета с дисками/образами интересна (на мой взгляд) исключительно в плане экономии места на диске.
В данном примере этой экономии нет, может проще было новичкам показать как создавать свой репозиторий? Пример наверное даже проще вышел бы - благо там пара команд не считая копирований содержимого дисков.

асоциальный психопат комментирует...

Подозреваю, что debian-40r0 -- ни разу не unstable.

В данном примере этой экономии нет
Экономия есть, если всё равно приходится хранить на диске официальные iso-образы (например, для того, чтобы можно было их прожигать по мере надобности, расшарить по локальной сети на несколько машин и проч.), а тут ещё пользоваться ими можно "на лету", экономя трафик (и время, если Инет медленный) -- особенно если получившийся репозитарий на несколько машин расшарить.

А прописать в /etc/fstab действительно удобнее.

virens комментирует...

2 Roman Cheplyaka пишет...
for i in 1 2 3
Вообще да, это точно. Поправлю.

2 Анонимный пишет...
Откровенно говоря, лично мне пррт подобной постановке задачи первое что пришло бы в голову - создать свой репозиторий.
Хочется просто монтировать исошники без лишних телодвижений.


2 асоциальный психопат пишет...
Подозреваю, что debian-40r0 -- ни разу не unstable.
Бес попутал :-) Исправлено.

Экономия есть, если всё равно приходится хранить на диске официальные iso-образы
В общем, на это весь расчёт. Кому-то удобно, кому-то нет.

Анонимный комментирует...

Я несовсем выздоровел или можно на одно луп-устройство по три диска за раз оптом навешивать?

Анонимный комментирует...

На одно устройство наверное нельзя, но через -o loop можно монтировать сколько угодно. ИМХО создаются несколько лупбэк девайсов, но если есть желание - можете проверить, при помощи lsof например :-).

Анонимный комментирует...

Вообще через -o loop по умолчанию до 8 устройств можно монтировать, если конечно ядро не подшаманить в этом плане

Анонимный комментирует...

Я сделал репозиторий из 6 DVD для Ubuntu в локальной сети по http следующим образом: последовательно скопировал в mc содержимое каждого диска в одну папку, доступную для web-сервера.

Анонимный комментирует...

loop-устройств, вроде бы, может быть не более 8...
И ещё один очень важный момент: для бинарников (по крайней мере, etch) в apt-sources.list дисты прописываются следующим образом:
deb file:/mnt/deb-40r3-i386-1 stable main contrib
deb file:/mnt/deb-40r3-i386-2 stable main
deb file:/mnt/deb-40r3-i386-3 stable main
то есть, contrib только для ПЕРВОГО ДВД.
А так, да, рабтает замечательно. Очень удобно для подключения свяких тестируемых/нестабильных репозиториев. Можно юзать и для вариантов: накатить пакеты из убунту поверх дебиана, итд, но это уже может быть чревато....

Анонимный комментирует...

Вся эта штука с дисками конечно хорошо
но вот как сделать репозиторий только из нужных пакетов и их зависимостей
например для установки на несколько однотипных машин(при том что репозиторий будет хранится на ftp сервере)

Анонимный комментирует...

Уважаемый, virens, а можешь написать заметку как сделать *buntu-репозиторий 6dvd -> hdd ? Т.е. слить все диски в один pool и радоваться жизни. Чтобы можно было обновлять пакеты по инету.
Мне удалось найти лишь одну статью на эту тему, но она плохо написана и нужные заклинания не работают: http://whylinux.ru/2008/01/11/repozitorii-v-ubuntu-chast-1-ispolzovanie-mnogodiskovyx-srezov-na-cddvd/

Анонимный комментирует...

Дошёл до этого сам, делал практически так же, но мне кажется, лучшей идеей будет монтировать образы сразу в ro ( -o loop,ro ), нежели выдавать права постфактум.

virens комментирует...

2 Анонимный пишет...
Уважаемый, virens, а можешь написать заметку
Я бы с радостью, но у меня очень тяжело со временем: мне нужно защищать кандидатскую.

В будущем вполне может быть. И спасибо за ссылку!

Анонимный комментирует...

Уважаемый, virens.
У меня, при током методе, apt ругается на ненадёжность источника пакетов.
Не подскажеш как импортировать ключи или как-то иначе исправить ситуацию.

Анонимный комментирует...

А вот такой вопрос. Если наоборот, имеются диски с репозиторием, как их можно закинуть на винт и устанавливать с винта, чтобы каждый раз диски не пихать туда-сюда? Пришли 5 ДВД с Дебианом, буду устанавливать на несколько компов по локалке.

Анонимный комментирует...

Исошники смонтировал стандартной прогой. Но вот долго мучился, чтобы менеджер обновлений добавил apt и потом обновлялся не выдавая ошибок. В итоге в менеджере написал такое вот (в добавлении apt):
deb file:///home/legos/ubuntu-11_04-2011-05-02-complete-amd64-dvd2_iso natty contrib main multiverse restricted universe
И так далее для всех дисков (всего 9)

Анонимный комментирует...

Как поднять репозиторий локальный имея лишь 8 двд дисков дебиана?

Спасибо.

Анонимный комментирует...

Дебианьщик, напиши как в локалке смонтировать на одной машине эти dvd диски так, что бы потом можно было всю локалку на репозитарий сервера настроить и без интернета использовать весь репозитарий дебиана заложенный в этих dvd дисках.

8 debian dvd squeeze discs.

Спасибо.

Unknown комментирует...

Собрал локальный репозиторий Debian squeeze из пакетов которые устанолены в текущей системе с помощью reprepro, получил то что запрашивал ls-1 07.09.2008, 18:18:00

позже добавил в этот репозиторий пакеты с 8 DVD дисков Debian-а и получил то, что запрашивали: Анонимный 13.03.2012, 16:48:00 и Анонимный 13.03.2012, 17:51:00

информацию по теме и по использованию reprepro взял тут:
Создание локального репозитория

Надеюсь кому поможет...

Отправить комментарий

Подписаться на RSS-ленту комментариев к этому посту.