В: Мой домашний компьютер с Ubuntu не подключен к Интернету, но у меня есть быстрое соединение в колледже. Есть ли инструмент, который я мог бы использовать на компьютере (c Windows), присоединенном к Интернету, для разрешения зависимостей?
Мне нужен способ ввести имя программы, которую я хочу установить, получить список её зависимостей и запихать его в Windows-приложение, чтобы добыть файлы и все прочее, от чего зависит приложение.
Tuxmando, с форумов
О: Способов есть как минимум два. Быстро и легко можно сделать с использованием опции ‘Generate package download script’ [Генерировать скрипт загрузки пакетов] в Synaptic. Отметьте пакеты, которые Вы хотите установить, затем выберите эту опцию в меню File; она создаст скрипт командной строки, запустив который, Вы сможете скачать пакеты. Затем перенесите пакеты на Вашу машину с Ubuntu и там поместите их в /var/cache/apt/archives или воспользуйтесь опцией меню ‘Add downloaded packages’ из Synaptic для их установки. Основной недостаток этого способа – скрипт требует наличия wget, поэтому Вам придется установить его на компьютере, с которого будете скачивать.
Как альтернативу, можно использовать apt-get из командной строки с опцией --print-uris. Apt-get будет автоматически пытаться установить все зависимости, а --print-uris выведет URL всех необходимых файлов. Используя grep и cut, достаньте URL из вывода с помощью
apt-get --print-uris --yes install pkgspec | grep ^’ | cut -d’ -f2 >downloads.list
Например, при запуске этой команды с заменой ‘pkgspec’ на ‘postgrey’ создастся файл, содержащий
http://security.ubuntu.com/ubuntu/pool/universe/ libn/libnet-dns-perl/libnet-dns-perl_0.59-1build1.1_i386.deb
http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libb/libberkeleydb-perl/libberkeleydb-perl_0.31-1_i386.deb
http://gb.archive.ubuntu.com/ubuntu/pool/main/ libd/libdigest-sha1-perl/libdigest-sha1-perl_2.11-1build1_i386.deb
http://gb.archive.ubuntu.com/ubuntu/pool/main/ libd/libdigest-hmac-perl-dfsg/libdigest-hmac-perl_1.01-5_all.deb
http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libi/libio-multiplex-perl/libio-multiplex-perl_1.08-3_all.deb
http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libn/libnet-cidr-perl/libnet-cidr-perl_0.11-1_all.deb
http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libn/libnet-ip-perl/libnet-ip-perl_1.25-2_all.deb
http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libn/libnet-server-perl/libnet-server-perl_0.94-1_all.deb
http://gb.archive.ubuntu.com/ubuntu/pool/ universe/p/postgrey/postgrey_1.27-4_all.deb
Как Вы можете видеть, здесь приведены и сама программа, и ее зависимости. Скопируйте download.list на USB-брелок и перенесите его на компьютер с быстрым Интернет-соединением. Многие программы FTP и менеджеры закачки умеют читать список URL для скачивания из файла по типу
wget --input-file myurilist
В строке ‘pkgspec’ можно задать больше одного имени пакета. Однако Вам необходимо время от времени запускать apt-get для обновления. Если Вы пользуетесь Интернетом не из дома потому, что Ваш домашний компьютер сидит на медленном модемном соединении, не опасайтесь проблем: apt-get update много не загружает. Если же у Вас вообще нет доступа в Интернет, можете запустить
apt-get --print-uris update
и скачать файлы в другом месте, затем скопировать, распаковать и переименовать файлы Sources в /var/lib/apt/lists.
(c) Linux Format