Ну ё ж моё...
# ls -lFR /var/lib/apt/
/var/lib/apt/:
итого 8
drwxr-xr-x 3 root root 4096 янв 16 06:53 lists/
drwxr-xr-x 2 root root 4096 мар 3 2014 prefetch/
/var/lib/apt/lists:
итого 105252
-rw-r--r-- 1 root root 74028020 янв 15 20:10 ftp.altlinux.org_pub_distributions_ALTLinux_t7_branch_i586_base_pkglist.classic
-rw-r--r-- 1 root root 896 янв 15 20:10 ftp.altlinux.org_pub_distributions_ALTLinux_t7_branch_i586_base_release
-rw-r--r-- 1 root root 133 янв 15 20:10 ftp.altlinux.org_pub_distributions_ALTLinux_t7_branch_i586_base_release.classic
-rw-r--r-- 1 root root 33714280 янв 15 20:09 ftp.altlinux.org_pub_distributions_ALTLinux_t7_branch_noarch_base_pkglist.classic
-rw-r--r-- 1 root root 690 янв 15 20:10 ftp.altlinux.org_pub_distributions_ALTLinux_t7_branch_noarch_base_release
-rw-r--r-- 1 root root 135 янв 15 20:10 ftp.altlinux.org_pub_distributions_ALTLinux_t7_branch_noarch_base_release.classic
-rw-r----- 1 root root 0 янв 16 06:52 lock
drwxr-xr-x 2 root root 4096 янв 16 06:53 partial/
/var/lib/apt/lists/partial:
итого 0
/var/lib/apt/prefetch:
итого 0
С целями на репозиторий, этой базой, пакетами в кеше и no-download, apt понимает, что пакеты которые хотят установить, существуют, но стучаться в сеть как и выкачивать с сервера их не нужно, а нужно устанавливать их из кеша.
Имеем цели:
# apt-repo
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/t7/branch i586 classic
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/t7/branch noarch classic
Синхронизируем базу и с понтом переносим её [вверху] и цели на другой компьютер:
# apt-get update
Получено: 1 http://ftp.altlinux.org i586 release [896B]
Получено: 2 http://ftp.altlinux.org noarch release [690B]
Получено 1586B за 0s (4993B/s).
Найдено http://ftp.altlinux.org i586/classic pkglist
Найдено http://ftp.altlinux.org i586/classic release
Найдено http://ftp.altlinux.org noarch/classic pkglist
Найдено http://ftp.altlinux.org noarch/classic release
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Сам пакет в кеше есть
# ls -1F /var/cache/apt/archives/doublecmd_0.5.8-alt0.0.M70T.rev.5390_i586.rpm
/var/cache/apt/archives/doublecmd_0.5.8-alt0.0.M70T.rev.5390_i586.rpm
Грохаем его в системе, но кеш не трогаем, чтобы сыммитировать ситуацию
# apt-get remove doublecmd
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие пакеты будут УДАЛЕНЫ:
doublecmd
0 будет обновлено, 0 новых установлено, 1 пакетов будет удалено и 19 не будет обновлено.
Необходимо получить 0B архивов.
После распаковки будет освобождено 20,9MB дискового пространства.
Продолжить? [Y/n] y
Совершаем изменения...
Preparing... ######################################################################### [100%]
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.
Сеть есть
$ ifconfig |grep eth
eth0 Link encap:Ethernet HWaddr
eth1 Link encap:Ethernet HWaddr
$ ping -c3 ftp.altlinux.org
PING ftp.altlinux.org (62.152.55.238) 56(84) bytes of data.
64 bytes from 62.152.55.238: icmp_req=1 ttl=53 time=48.4 ms
64 bytes from 62.152.55.238: icmp_req=2 ttl=53 time=48.3 ms
64 bytes from 62.152.55.238: icmp_req=3 ttl=53 time=55.3 ms
Вырубаем сеть
$ ifconfig |grep eth
$
$ ping -c3 ftp.altlinux.org
ping: unknown host ftp.altlinux.org
И устанавливаем из кеша:
# apt-get install doublecmd --no-download
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие НОВЫЕ пакеты будут установлены:
doublecmd
0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 19 не будет обновлено.
Необходимо получить 0B/4730kB архивов.
После распаковки потребуется дополнительно 20,9MB дискового пространства.
Совершаем изменения...
Preparing... ######################################################################### [100%]
1: doublecmd ######################################################################### [100%]
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.
В безинтернетном режиме можно сыммитировать и что-нибудь посложнее:
Сначала удалим из системы
# apt-get remove audacity libsoundtouch
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие пакеты будут УДАЛЕНЫ:
audacity gst-plugins-bad1.0 libsoundtouch
0 будет обновлено, 0 новых установлено, 3 пакетов будет удалено и 19 не будет обновлено.
Необходимо получить 0B архивов.
После распаковки будет освобождено 38,1MB дискового пространства.
Продолжить? [Y/n] y
Совершаем изменения...
Preparing... ########################## [100%]
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.
Потом установим из кеша
# apt-get install --no-download audacity
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие дополнительные пакеты будут установлены:
libsoundtouch
Следующие НОВЫЕ пакеты будут установлены:
audacity libsoundtouch
0 будет обновлено, 2 новых установлено, 0 пакетов будет удалено и 19 не будет обновлено.
Необходимо получить 0B/18,5MB архивов.
После распаковки потребуется дополнительно 35,1MB дискового пространства.
Продолжить? [Y/n] y
Совершаем изменения...
Preparing... ################## [100%]
1: libsoundtouch ################# [ 50%]
2: audacity ################## [100%]
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.
В этом примере не обращайте внимания на удаляемый gst-plugins-bad1.0.
Библиотеку libsoundtouch требует не только audacity, но и пакет gst-plugins-bad1.0:
# apt-cache depends gst-plugins-bad1.0|grep soundtouch
libsoundtouch-1.3.1-alt2.qa2
Поэтому при удалении libsoundtouch удалён был и gst-плагин.
Что притянулось при download-only по зависимостям, если забылось, смотрим в
# cat /var/log/user/info|grep apt-get|grep 'Jan 16'|grep doub
Jan 16 19:33:29 host-nx apt-get: doublecmd-0.5.8-alt0.0.M70T.rev.5390 removed
Jan 16 19:34:34 host-nx apt-get: doublecmd-0.5.8-alt0.0.M70T.rev.5390 installed
поглядывая на время и дату, когда и что тянули.
Стёмно и телодвижений много, но и если зависимостей много, то так будет проще.
Но если пакетов пяток-другой, то наверное проще через rpm.
Всё зависит от конкретной ситуации.
Здесь рецепта на все случаи жизни не будет и быть не может.
Понятно, что если база на безинтернетном позавчерашняя, а пакеты на интернетном по download-only слиты сегодня, то на безитернетном базу надо снова синхронизировать с тем компьютером, на котором интернет есть.
Видимых телодвижений много потому, что к ignore-missing которое упоминается рядом с no-download, отношусь с изрядной долей скепсиса.
Преимущество этого же способа в том, что на безинтернетном компьютере расположенном на необитаемом острове, пакеты можно устанавливать хоть гигатоннами. Был бы вертолёт, который сбросил бы флешку с пакетами и базой.
Но здесь есть тонкость:
более чем желательно на безынтернетном сделать dist-upgrade, чтобы различия пакетов в системе и на сервере были минимальны. А значит и различия осей на компьютерах стремились бы к нулю. Наиболее простым вариантом мне кажется тот, когда интернетный и безинтернетный живут синхронно. Тогда в ignore-missing точно не будет необходимости. Наиболее просто, после dist-upgrade, - autoclean. С переносом пакетов для апгрейда. Тогда точечная установка потребует минимум пакетов по зависимостям.
Возможно с apt'ом пригодятся и эти трюки из комплекта советов:
Установка пакетов из спискаhttp://forum.altlinux.org/index.php/topic,32361.15.htmlКоманда
# apt-get reinstall --download-only $(< inst-pkgs-notkernel.txt)
там конечно не приведена, поскольку выходит за рамки темы.
И которая с последующим autoclean поможет иметь в кеше все актуальные пакеты установленные в системе которые могут понадобиться при офлайновом dist-upgrade.
И да поможет вам всемогущий man.
Но если интернетный компьютер только с виндоус, то установка через rpm по одному пакету тут без вариантов. Порт wget есть и под виндоус.