Некоторые пакеты конфликтуют, поэтому невозможно установить все доступные пакеты одновременно. Каково максимально возможное количество устанавливаемых пакетов для данной системы? Метод проб и ошибок методом грубой силы будет:
- составьте список всех возможных имен пакетов, например,
dglob -a > list
- Исходя из этого, составьте подсписки
slist1 slist2 slist3...
из всех возможных комбинаций пакетов. В моей системеdglob -a | wc -l
dglob -a | wc -l
возвращает 91327, что потребует неоправданно большого количества (1,467 × 10 ^ 27492) файлов. - запустите
apt-get install
в каждом списке иrm
те, которые вызывают конфликты. - сортировать оставшиеся списки по количеству строк и показывать самый длинный.
wc -l slist* | head -n -1 | sort -g | tail -1
wc -l slist* | head -n -1 | sort -g | tail -1
.
Легко, но слишком тяжело для ресурсов, так что, возможно, есть какой-то более выполнимый метод.
Из этого вытекают различные связанные вопросы, такие как:
-
с учетом пакета 'foo' как найти максимальное количество устанавливаемых пакетов, которые не конфликтуют с 'foo'?
-
Для всех возможных пакетов, у которых наименьший такой максимум (что делает его наиболее "ссорящимся" пакетом)?
(Примечание. Этот вопрос относится к Debian, Red Hat и любым дистрибутивам или ОС с системой упаковки, которая отображает конфликты пакетов. Ответы для любой применимой платформы будут действительными.)
Фон:
Debian имеет десятки тысяч пакетов. dglob
(из пакета oodies debian -g) удобен для быстрого подсчета:
# show how many packages installed and available on the current system
echo $(dglob | wc -l) packages installed of \
$(dglob -a | wc -l) packages.
Пример вывода (оба числа могут периодически колебаться после обновлений и обновлений и будут различаться в зависимости от системы):
5107 packages installed of 91327 packages.
Число 5107 не максимум, конечно, но максимум должен быть.