Как скачать пакет, но не устанавливать его с помощью команды apt-get?

Вопрос или проблема

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 существует несколько подходов. В данном ответе мы подробно рассмотрим эти методы, включая управление зависимостями и загрузку в текущую директорию.

Методы загрузки пакетов без установки

  1. Использование флага --download-only:

    Команда apt-get позволяет загружать пакет, не устанавливая его, добавив флаг --download-only. Это удобно, если вы планируете установить пакет позже из локального кэша:

    sudo apt-get install --download-only pppoe

    В этом случае все загруженные пакеты будут сохранены в каталоге /var/cache/apt/archives. Это полезно для повторной установки в будущем, так как зависимости, необходимые для установки, также будут загружены.

  2. Команда apt download:

    Сторонние утилиты apt позволяют загружать пакеты напрямую в текущую директорию без установки. Это делается с помощью команды:

    apt download pppoe

    Команда также поддерживает более новые версии Ubuntu (>= 18.04). Это самый простой способ загрузить пакет, находясь в нужной директории.

  3. Использование apt-get download:

    Альтернативный способ, который также позволяет загружать пакет в текущую директорию:

    apt-get download pppoe

    Обратите внимание, что этот метод загружает только целевой пакет и не включает зависимости. Если зависимости также нужны, данный метод не подойдет.

  4. С помощью wget:

    Если вам известен URL-адрес .deb файла, вы можете использовать wget для его загрузки:

    wget http://ftp.us.debian.org/debian/pool/main/p/ppp/ppp_2.4.7-1+4_amd64.deb

    Это требует предварительного знания адреса пакета и является менее удобным, если нужно загружать множество пакетов с зависимостями.

  5. Скрипты для загрузки зависимостей:

    Если вы сталкиваетесь с ситуацией, когда установка пакетов возможна только на машине с ограниченным интернет-доступом, стоит рассмотреть создание скрипта для автоматической загрузки всех зависимостей. Такой подход позволит управлять загрузкой нескольких пакетов сразу, собирая их в архивы для последующего переноса на сервер.

  6. Просмотр кэша пакетов:

    После использования любой из команд, вы можете просмотреть загруженные файлы, находящиеся в каталоге:

    /var/cache/apt/archives

Заключение

Итак, для загрузки пакета, не устанавливая его, существует несколько средств и методов. Выбор конкретного зависит от ваших потребностей, будь то необходимость загружать не только основной пакет, но и его зависимости, или просто стремление максимально быстро получить нужный .deb файл. Команды apt download и apt-get download являются наиболее удобными для работы на современных системах, тогда как wget может предложить больше контроля при точном указании источника.

Оцените материал
Добавить комментарий

Капча загружается...