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 подписчиков

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

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

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

Вы смотрите срез комментариев. Показать все
9
Автор поста оценил этот комментарий

Не понял, а разве у debian python не входит в поставку? Крайне удивлён.


Т.е. весьма нехитрая обработка текстового конфига, которую можно сделать хоть на шелле хоть на перле, который, на минуточку, в отличие от Python является штатным компонентом пакетной системы в Debian.

Я ещё могу принять шелл (хоть и со скрипом), но перл - увольте. Лучше вот его к хренам выкинуть и скриптовать на питоне, без шанса отстрела яиц, даже не понимая, где был спрятан ствол.

раскрыть ветку (7)
1
Автор поста оценил этот комментарий

Ну на перле можно писать вполне понятно и легкочитаемо, просто для этого не надо извращаться до "программа из одной строчки на перл".

раскрыть ветку (4)
5
Автор поста оценил этот комментарий

Можно, но прям чувствуется, что его век прошел. Питон уже лет 10 как точно язык для скриптов по-умолчанию.

раскрыть ветку (3)
4
Автор поста оценил этот комментарий

Поставлю плюсик, но не соглашусь.

Bash - язык для скриптов по умолчанию.


P. S. Но мы то знаем, что для Microsoft это .bat файл.

раскрыть ветку (2)
3
Автор поста оценил этот комментарий

BSD с его tcsh с вами ой как не согласится :)

Да и маки давно на zsh по-умолчанию. А винда на powershell-скрипты переползла всё-таки.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Tcsh и zsh - любовь моя...

Автор поста оценил этот комментарий

разве у debian python не входит в поставку

Входит конечно, есть в репозитории. Я имею в виду минимально жизнеспособную поставку. Если юзер делает apt-get purge python* libpython*, система остается работоспособной.


Лучше вот его к хренам выкинуть и скриптовать на питоне

Это невозможно. На Perl написан пакетный менеджер дистрибутива.

раскрыть ветку (1)
5
Автор поста оценил этот комментарий

Просто замечательно, осталось сделать одну маленькую вещь: переписать Apt и весь сборочный инструментарий дистрибутива с Perl на Python...

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


Fedora свой менеджер на dnf сменила на питоне и сях, ни у кого жопа не отвалилась.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества