101

Dependency bloat

Решил я тут обновить свой рабочий Debian с 11 до 12 (bullseye -> bookworm) и обнаружил, что в новой версии NFS внезапно стал требовать Python:

$ apt-cache depends nfs-common | grep python

Depends: python3

NFS-клиент, Карл!! Компонент для подключения к сетевым шарам, написанный на C, внезапно требует наличия в системе прикладного ЯП общего назначения! По запросу в гугле "nfs python dependency" выдаётся список ишью, в которых другие юзеры испытывают такое же точно недоумение.

Дальше веселее: дальнейшее исследование показало, что весь питон в этом пакете представлен ровно 1 вспомогательным файлом nfsconvert.py, цель которого - конвертировать старый многофайловый формат конфигурации /etc/default/nfs-* в новый монолитный формат /etc/nfs.conf. Т.е. весьма нехитрая обработка текстового конфига, которую можно сделать хоть на шелле хоть на перле, который, на минуточку, в отличие от Python является штатным компонентом пакетной системы в Debian. Но кто-то ****#!!@ ничего кроме своего питона не знает и кроме того считает, что python должен идти в поставке дистрибутива.

Эта зараза уже давно в дебиане, многие пакеты тащат с собой кучу зависимостей (в Depends, не в Suggests), которые нужны 2.5 анонимам в специфических случаях, но тем не менее входят в поставку. Чтобы не быть голословным:

$ apt-cache depends mplayer | grep python

Depends: python3

Медиаплееру нужен питон, а что вы думали? Это для python bindings, сам плеер написан на C++.

$ apt-cache depends mpd | grep smb

Depends: libsmbclient-dev

Крохотному консольному аудиоплееру на C++ нужна Samba (которая в свою очередь тащит Python). Т.е. система типа не умеет монтировать Windows шары в обычную директорию (очевидно, из-за того, что в ней не стоит самба) чтобы скормить из неё файлы в плеер, но вдруг нам захочется подключиться напрямую к Windows шаре с музыкой! Решение: надо просто притащить самбу зависимостью! Гениально! Также этот плеер тащит много всякой другой каки, вроде Sphynx (система для генерации доков, по размеру думаю сравнима со всеми остальными зависимостями вместе взятыми).

Из-за всего этого мне приходится у себя держать набор патченых сборок deb-пакетов с порезанными зависимостями, но их же тоже нужно обновлять и пересобирать, я из разработчика превращаюсь в мать его мейнтейнера дистрибутива. Проще конечно не заморачиваться и ставить все зависимости и экономить своё время, но мне честно говоря обидно за Debian, когда-то он был классическим гикодистром, при прямых руках его можно было сделать компактнее даже многих минималистичных дистров вроде Slackware, при этом не надо было знать ничего сверх базовых команд Apt.

GNU/Linux

1.2K поста15.6K подписчиков

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества