Я хочу узнать о том, как работает apt и извлекает объекты с зеркал, в sources.list
. Как Могу ли я просматривать эти репозитории вручную, загружать их вручную и создавать их вручную (не используя исходный код, не github и т. д.)?
Когда я хочу загрузить определенную версию пакета вручную с помощью wget
, я использую pkgs.org . Этот сайт в основном содержит индекс всех основных репозиториев и предоставляет множество деталей о пакетах.
Он поддерживает множество дистрибутивов, помимо Ubuntu (вы можете найти более новые пакеты, например, установив из Debian unstable), а также архитектуры amd64
и arm64
.
Здесь вы можете просмотреть или найти любой пакет, и вы получите прямую ссылку для загрузки.
Возьмем этот пример с Nano для Ubuntu 20.04 .
Вы получаете ссылку для загрузки, список зависимостей, список файлов и т. Д. Чтобы загрузить этот пакет вручную, вы просто запускаете wget
с предоставленной ссылкой:
wget http://archive.ubuntu.com/ubuntu/pool/main/n/nano/nano_4.8-1ubuntu1_amd64.deb
Затем вы можете продолжать делать все, что угодно вы хотите с пакетом.
Ручная загрузка пакета завершится адом зависимости от другой попытки.
Вот почему я создал специальный скрипт на основе Docker для моих личных нужд. Он расположен по адресу https://github.com/N0rbert/deb-download .
В настоящее время этот сценарий поддерживает все версии Debian и Ubuntu, у которых есть базовые образы докеров на dockerhub, например, Ubuntu с 12.04 LTS, Debian с 6 и Mint с 18. Сценарий поддерживает как EOL, так и текущие выпуски.
Как использовать:
Знать необходимое имя производного Debian (например, сам Debian, Ubuntu и Mint), его кодовое имя и имя пакета с помощью локальных инструментов, таких как политика apt-cache
, rmadison
; или посетив https://packages.debian.org , https://packages.ubuntu.com , http: //packages.linuxmint.com , https://repology.org , https://pkgs.org и т. д.
Установите Docker на машину, например, используя пакет docker.io (пакет с docker.com также будет работать)
sudo apt-get update
sudo apt-get install docker.io git {{1 }} sudo usermod -a -G docker $ USER
и перезагрузите компьютер.
Клонируйте репозиторий и запустите сценарий, чтобы получить пакет (ы) с его (их) зависимостями
cd ~ / Downloads
git clone https://github.com/N0rbert/deb-download. git
cd deb-download
chmod + x deb-download.sh
# производное кодовое имя пакета (ов)
# ↓ ↓ ↓ { {1}} ./ deb-download.sh ubuntu bionic zenmap
Захватите загруженные пакеты deb из подпапки хранилища
. При желании возьмите файл списка URL-адресов из хранилища / urls.txt
.
Внимательно проверьте содержимое подпапки storage
, затем попробуйте установить основной deb-пакет в целевую систему, а затем по очереди исправьте его зависимости.
Например, установка ZenMap в системе Ubuntu 20.04 LTS возможна с помощью следующих команд:
cd storage
sudo apt-get install ./zenmap_7.60-1ubuntu5_all.deb ./python-gtk2_2. 24.0-5.1ubuntu2_amd64.deb
Более подробная информация представлена в README.md и в самом скрипте deb-download.sh .