Вопрос или проблема
sudo apt-get install pppoe
скачает пакет pppoe
и установит его.
Можно ли просто скачать пакет pppoe
и не устанавливать его с помощью команды apt-get
?
wget http://ftp.us.debian.org/debian/pool/main/p/ppp/ppp_2.4.7-1+4_amd64.deb
ppp_2.4.7-1+4_amd64.deb
теперь находится в текущем каталоге.
cd /tmp
sudo apt-get install -d ppp
Чтение списков пакетов... Готово
Формирование дерева зависимостей
Чтение информации о состоянии... Готово
Следующие НОВЫЕ пакеты будут установлены:
ppp
0 обновлено, 1 новинка установлена, 0 удалено и 95 не обновлено.
Необходимо получить 0 B/346 kB архивов.
После этой операции будет использовано 949 kB дополнительного дискового пространства.
Загрузка завершена, и в режиме только загрузки
Нет ppp_2.4.7-1+4_amd64.deb
или пакета, связанного с ppp, в /tmp.
sudo find /tmp -name ppp*
Ничего не найдено.
Где пакет ppp в /tmp с командой
cd /tmp
sudo apt-get install -d ppp
??
Используйте --download-only
:
sudo apt-get install --download-only pppoe
Это скачает pppoe
и любые необходимые зависимости и поместит их в /var/cache/apt/archives
. Таким образом, последующая команда apt-get install pppoe
сможет завершиться без дополнительных загрузок.
Используйте эту команду:
apt-get download pppoe
Эта команда позволит вам скачать пакет в текущий каталог.
Для доступа к установленным .deb
файлам вы можете посмотреть в этом пути:
/var/cache/apt/archives
Чтобы немного расширить ответ Хамида, любая из этих трех очень похожих команд будет работать, если ваше единственное желание состоит в том, чтобы только скачать указанный пакет и ничего другого. (Ваш случай использования неясно изложен, поэтому неясно, действительно ли вы хотите это сделать.) Все они загружают двоичный файл пакета Debian, соответствующий указанному двоичному пакету Debian, в текущий каталог. Обратите внимание, что эти команды загружают только указанный двоичный пакет и ни одной из его зависимостей. Если вам также нужны зависимости, используйте ответ, предоставленный Стивеном Киттом.
apt-get download ppoe
apt download ppoe
aptitude download ppoe
Первые две команды являются частью пакета apt
, третья – частью пакета aptitude
. Они все функционально эквивалентны, насколько я знаю, хотя различия в синтаксисе и использовании между apt
и aptitude
могут заставить вас предпочесть одну из них при определенных обстоятельствах. И, конечно, apt
является более новой командой, чем apt-get
– она содержит функциональность apt-get
и apt-cache
, отказываясь от некоторого исторического багажа.
Также имейте в виду, что если любая из этих команд найдет файл, уже находящийся в текущем каталоге, они не будут загружать его снова. Однако я не уверен, какие критерии они используют для проверки – или, другими словами, насколько сложно их обмануть. Пустой файл не работает.
Новые версии могут использовать
apt download pppoe
Он будет загружен в текущий каталог.
(Для дистрибутивов на основе ubuntu, версия которых >=18.04)
Когда я работал на одном сервере Ubuntu, у которого не было интернета, но он был доступен через корпоративную интранет. Установка пакетов была сложной.
Я создал скрипт, который будет искать зависимости требуемого пакета, сохранять их в списке, а затем проходить по списку, чтобы загружать другие дочерние зависимости, потому что иногда одного прохода загрузки зависимости было недостаточно. После загрузки зависимостей он упаковывал их в zip-файл, который можно было перенести целиком на сервер. Я назвал этот скрипт pkgdownload.
Его можно найти на моем GitHub здесь
Команда для загрузки с отсутствующими зависимостями и в текущей папке:
sudo apt install --download-only pppoe -o Dir::Cache::archives=./
Это изменит папку archives
только для этого вызова.
Dir::Cache
– это папка с файлами содержимого apt update
и работает также для создания их резервной копии:
sudo apt update -o Dir::Cache=/another_folder
. Для этого примера с pppoe
достаточно скопировать pkgcache.bin
в /another_folder
.
sudo apt install --download-only pppoe -o Dir::Cache::archives=./ -o Dir::Cache=/another_folder
будет читать содержимое из /another_folder
и скачать pppoe с зависимостями в текущую папку.
apt
предоставляет команду для получения источников – apt source
.
$ apt source pppoe
Чтение списков пакетов... Готово
Выбрано 'rp-pppoe' в качестве исходного пакета вместо 'pppoe'
Необходима загрузка 239 kB исходных архивов.
Получено:1 http://mirror.location.org/debian stretch/main rp-pppoe 3.12-1.1 (dsc) [1,708 B]
Получено:2 http://mirror.location.org/debian stretch/main rp-pppoe 3.12-1.1 (tar) [224 kB]
Получено:3 http://mirror.location.org/debian stretch/main rp-pppoe 3.12-1.1 (diff) [13.2 kB]
Загружено 239 kB за 0s (1,241 kB/s)
dpkg-source: информация: извлечение rp-pppoe в rp-pppoe-3.12
dpkg-source: информация: распаковка rp-pppoe_3.12.orig.tar.gz
dpkg-source: информация: распаковка rp-pppoe_3.12-1.1.debian.tar.xz
dpkg-source: информация: применение 01_auto_ifup.patch
dpkg-source: информация: применение 02_change_mac_option.patch
dpkg-source: информация: применение 03_man_pages.patch
dpkg-source: информация: применение 04_ignore_broadcasted_pado_packets.patch
dpkg-source: информация: применение 05_change_default_timeout.patch
dpkg-source: информация: применение 06_typo_fixes.patch
Для этого необходим репозиторий источников в вашем sources.list
или sources.list.d
каталоге (/etc/apt/sources.list
или /etc/apt/sources.list.d/
. Такая строка будет выглядеть примерно так (замените на подходящий зеркала и разделы репозитория):
deb-src http://mirror.location.org/debian/ stretch main contrib non-free
Вы можете скачать файл пакета в определенный каталог с помощью wget
:
$ wget -O ~/Downloads/ppp_2.4.7-1+4_amd64.deb http://ftp.us.debian.org/debian/pool/main/p/ppp/ppp_2.4.7-1+4_amd64.deb
Это работает у меня
sudo apt-get reinstall --download-only <ваше программное обеспечение>
например
sudo apt-get reinstall --download-only ubuntu-restricted-extras
Для доступа к установленным .deb файлам вы можете посмотреть в этом пути:
/var/cache/apt/archives
Ответ или решение
Для загрузки пакета без его установки с помощью команды apt-get
существует несколько подходов. В данном ответе мы подробно рассмотрим эти методы, включая управление зависимостями и загрузку в текущую директорию.
Методы загрузки пакетов без установки
-
Использование флага
--download-only
:Команда
apt-get
позволяет загружать пакет, не устанавливая его, добавив флаг--download-only
. Это удобно, если вы планируете установить пакет позже из локального кэша:sudo apt-get install --download-only pppoe
В этом случае все загруженные пакеты будут сохранены в каталоге
/var/cache/apt/archives
. Это полезно для повторной установки в будущем, так как зависимости, необходимые для установки, также будут загружены. -
Команда
apt download
:Сторонние утилиты
apt
позволяют загружать пакеты напрямую в текущую директорию без установки. Это делается с помощью команды:apt download pppoe
Команда также поддерживает более новые версии Ubuntu (>= 18.04). Это самый простой способ загрузить пакет, находясь в нужной директории.
-
Использование
apt-get download
:Альтернативный способ, который также позволяет загружать пакет в текущую директорию:
apt-get download pppoe
Обратите внимание, что этот метод загружает только целевой пакет и не включает зависимости. Если зависимости также нужны, данный метод не подойдет.
-
С помощью
wget
:Если вам известен URL-адрес .deb файла, вы можете использовать
wget
для его загрузки:wget http://ftp.us.debian.org/debian/pool/main/p/ppp/ppp_2.4.7-1+4_amd64.deb
Это требует предварительного знания адреса пакета и является менее удобным, если нужно загружать множество пакетов с зависимостями.
-
Скрипты для загрузки зависимостей:
Если вы сталкиваетесь с ситуацией, когда установка пакетов возможна только на машине с ограниченным интернет-доступом, стоит рассмотреть создание скрипта для автоматической загрузки всех зависимостей. Такой подход позволит управлять загрузкой нескольких пакетов сразу, собирая их в архивы для последующего переноса на сервер.
-
Просмотр кэша пакетов:
После использования любой из команд, вы можете просмотреть загруженные файлы, находящиеся в каталоге:
/var/cache/apt/archives
Заключение
Итак, для загрузки пакета, не устанавливая его, существует несколько средств и методов. Выбор конкретного зависит от ваших потребностей, будь то необходимость загружать не только основной пакет, но и его зависимости, или просто стремление максимально быстро получить нужный .deb файл. Команды apt download
и apt-get download
являются наиболее удобными для работы на современных системах, тогда как wget
может предложить больше контроля при точном указании источника.