Я могу получить список всех доступных пакетов и их детали, используя следующую команду:
apt-cache search .
Выводит список пакетов, который выглядит следующим образом:
i 0ad - Real-time strategy game of ancient warfare
i 0ad-data - Real-time strategy game of ancient warfare (data files)
i 0ad-data-common - Real-time strategy game of ancient warfare (common data files)
p 0ad-dbg - Real-time strategy game of ancient warfare (debug)
p 0xffff - Open Free Fiasco Firmware Flasher
p 2ping - Ping utility to determine directional packet loss
p 2vcard - perl script to convert an addressbook to VCARD file format
p 3270-common - Common files for IBM 3270 emulators and pr3287
p 389-admin - 389 Directory Administration Server
...
Как я могу получить такой список пакетов для версии Ubuntu, которую я не установил?
Так, в частности, где я могу скачать база данных всех доступных пакетов для конкретной версии Ubuntu, и как я могу получить подробности (возможно, включая версию, размер, длинное описание ...) из нее, в виде открытого текста или в формате, который легко анализировать с помощью скрипта ?
Используйте chdist. Эта команда позволяет Вам работать apt-get
и apt-cache
, как обычно, но для другого релиза Ubuntu (или Debian или на самом деле любое другое Debian-полученное распределение).
Это также обеспечивает обертку приблизительно grep-dctrl, который легко позволяет Вам искать и сообщать относительно полей метаданных.
У Вас уже есть команда для списка всех возможных отправленный, но хорошо отпускает, немного глубже буду мы? Так apt-cache search .
или apt-cache search ''
производит приблизительно 2 300 + строки, который является на самом деле целым количеством всех возможных пакетов включая различные версии DE.
Для создания этого более легким Вы могли только получить имена с:
apt-cache search '' | sort -d | awk '{print $1}'
Или, Вы любите больше информации и не возражаете против длинного длинного списка, Вы могли прокрутить это до apt-cache policy
:
apt-cache policy $(apt-cache search '' | sort -d | awk '{print $1}')
Я предпочитаю использование http://packages.ubuntu.com/ как ответ muru
Иначе ища офлайновое решение затем необходимо быть MR. APT и начинает загружать их с http://archive.ubuntu.com/ubuntu/dists/.
p=$(pwd); for c in main universe multiverse restricted; do for u in "" -security -updates; do for a in binary-amd64 binary-i386; do mkdir trusty${u}_${c}_$a; cd trusty${u}_${c}_$a; wget http://archive.ubuntu.com/ubuntu/dists/trusty$u/$c/$a/Packages.bz2; cd $p; done; done; done;
Результаты:
$ tree
.
├── trusty_main_binary-amd64
│ └── Packages.bz2
├── trusty_main_binary-i386
│ └── Packages.bz2
├── trusty_multiverse_binary-amd64
│ └── Packages.bz2
├── trusty_multiverse_binary-i386
│ └── Packages.bz2
├── trusty_restricted_binary-amd64
│ └── Packages.bz2
├── trusty_restricted_binary-i386
...
Разложение, расширенная настройка:
На самом деле я собираюсь использовать пользовательское sources.list*
с тем же apt-cache
установленный на 16,04, но apt
не перезапишет 16,04 реальных файлов списков в /var/lib/apt/lists/
, изменения перейдут в overlay
файловая система.
Установка:
sudo apt-get install chroot
mkdir sandbox0
cd sandbox0
mkdir upper work merged
sudo mount -t overlay overlay -o lowerdir=/,upperdir=./upper,workdir=./work ./merged
sudo chroot merged/
echo "deb http://archive.ubuntu.com/ubuntu/ trusty universe multiverse main restricted" > /etc/apt/sources.list
rm -r /etc/apt/sources.list.d/*
apt-get update
exit
Использование: (можно подготовить сценарий),
sudo mount -t overlay overlay -o lowerdir=/,upperdir=./upper,workdir=./work ./merged
sudo chroot merged/
apt-cache ...