Skip navigation.
Home

Просветления псто


Всему свое время, и время всякой вещи под небом

Книга Екклесиаста

Я тут неумно гнал на Qt, крыл все херами и был сильно не прав. Возможно, история ниже пригодится не только мне для перечитывания, но и еще кому-то.

Все началось лет 6-7 тому, когда я выбирал себе дистрибутив Linux для установки на свой компьютер. Тогда бодро пер Linux Mint и все было очень хорошо: поставил, установил что тебе надо, все заработало, ура.

Такое состояние ("все хорошо, просто работаем") длилось довольно долго, года 4, наверное. Потом начались первые звоночки:

Дело в том, что если не устанавливаешь в систему что-то новое, то жить на неподдерживаемом разработчиками дистрибутиве можно неограниченно долго: те пакеты, которые есть, ставятся, делают то, что от них ожидаешь, и все хорошо. Но пакеты в Linux попадают не только из родных репозиториев системы, но и из сторонних репозиториев а так же иногда (хотя я этого очень не люблю) в виде deb-файлов.

И вот тут начали проявляться чудеса. Несовместимость библиотек. Как правило, при установке чего-то из неродного репозитория (например, последней версии Oracle VirtualBox) или чего-то в виде deb-файла (скайп под Линукс, например) начала вылезать херня типа: "установлена библиотека такая-то версии 1.14, а мне надо не меньше чем 1.25!". Попытка найти и поставить версию 1.25 приводила к тому, что курятник начинал рушиться и заваливаться: версия 1.25 тянула за собой обновление пяти других библиотек, которые... Ну понятно, короче. Поэтому в какой-то момент я уже жил по принципу:"Оно работает - и не трогай его". Поставить что-то типа поддержки Google drive (это fuse-система для Linux) уже можно было даже не пытаться: оно не просто не вставало, а тупо требовало вещей в принципе несовместимых со имеющейся системой, например, ppa-репозиториев.

И настал Веселый День. Во-первых у меня после очередного апдейта рухнул Thunderbird. Во-вторых попытка установить новую библиотеку d-bus, которая требовалась для работы Qt свежей версии (новый заказчик, новая работа) привела к тому, что лег X11 сервер. Начались именно системные ошибки, которые пошли как снежная лавина и нахер снесли весь домик. Стало понятно, что дальше так продолжать нельзя. Если основной домашний сервер не обновляется годами (он, в принципе делает то, для чего предназначет и там нет нужды в обновлениях) то на ноутбуке жизнь достаточно динамичная: например, только сегодня я поставил для работы десяток пакетов (wireshark, qca, socat...)

До кучи сдох верный боевой ноутбук, который верой и правдой прослужил почти 7 лет. Хорошая мощная машина, но он просто тупо сдох, увы (видеокарта накрылась встроенная). Бэкап у меня делается каждый день, некоторых вещей - несколько раз в день, так что я ничего не потерял. Я достал с полки резервный ноутбук (сильно поскромнее) и задумался, что именно ставить.

Швед порекомендовал другой дистрибутив. Я на нем третий день, причем именно работаю, а не картинки смотрю, и я в полном восторге. Так, вот оно. Сразу, чтобы были понятны мои критерии: мне ненужны свистелки, радуга и салют. Мне надо, чтобы дистрибутив поставил все драйвера, чтобы он был устойчив, чтобы не начинался "кошмар неразруливаемых зависимостей". Так вот эта штука действительно работает.

Тут же кончились как по волшебству все проблемы. Qt свежей версии не только встала, но и отпала необходимость прописывать километровые LD_LIBRARY_PATH для различных ситуаций. Пересобранные проекты отлично запуститились вне какой-либо связи со средой разработки. Перестал отваливаться и дохнуть софт, который я раньше приколачивал кривыми ржавыми гвоздями к системе: можно просто работать, а не извращаться, городя софтлинки, максимально изолируя одни части системы от других и пр. Это давно забытый кайф, который раньше давал Linux и который потихоньку стал уходить вместе с поддержкой дистрибутива.

Недостатков у дистрибутива два (из обнаруженных мною).

1. Он предлагает при установке снести все нахрен с жесткого диска без вариантов. То есть сначала надо сделать полный бэкап всех данных.
2. После установки система ругается на partition table, но тем не менее, устойчиво работает и я не имею с этим никаких проблем. (вроде бы как это лечится, но пока руки не дошли).

Швед, еще раз большое спасибо за полезный совет. Это действительно то, что мне было нужно. Попробую еще раз повоевать с neomutt, во всяком случае, теперь он поставился.

У Циника была

У Циника была конкретная проблема и конкретные требования. А именно: на пыльном железе полностью тазом накрылось все. Нужно было привести в рабочее состояние, в кратчайшие сроки, и сделать систему для работы.

Идеология есть у любого Линукса, даже у того же Arch. Когда ставишь его в первый раз, не имев с ним дела ранен, нужно провести немало времени вкуривая как его правильно поставить именно под себя. Тут - у человека нет ни времени ни желания на то чтобы заниматься отладкой, настройкой, селекцией пакетов и прочее.

Еще условием было чтобы система базировалась на Дебиан. Когда я советовал то исходил из личного опыта, так как недавно взял новый лапоть и ставил несколько дистрибутивов. Убунту, чистая, отправилась нафиг потому что там появились некоторые «детские болезни» с Wayland. Чистый Дебиан неплох, но там есть некий гемор с инсталляцией, хотя бы в том что ему нужно делать дополнительную флешку с фирмварью, микрокодом и прочим драйверным говном.

Советовать чистый Минт тоже не стал потому что, в последнее время, он скатывается непонятно куда. Там пошел какой-то разлад в девелоперской команде.

System76, на мой взгляд, подошли к работе очень правильно и верно. Даже на свежайшее железо оно встает без проблем. В коробке - ничего лишнего нет но и все нужное есть. Поддержка системы тоже на уровне. То-есть, критерии «поставить дебиановскую базу, так чтобы просто встала и побежал работать» выполнены на ура.

Я согласен что поставить чистый Дебиан или даже Арч было бы, наверное, в долгой перспективе лучше. Но не когда у человека один лапоть тупо накрылся совсем, а второй творит чудеса и является загадкой в плане железа.

> конкретные

> конкретные требования... в кратчайшие сроки... сделать
Ты прирождённый менеджер! Эти слова заставили меня истекать стоя, со взглядом безумным и неустрашимым :)

Это ты еще не

Это ты еще не видел как я таблицы в Excel и графики в PowerPoint делаю!

Поддержу ККК и

Поддержу ККК и добавлю от себя.
Я (давно) не программист, тем более дома вообще ничего не программирую. И основная система у меня - винда, да.
Но принципы, озвученные ККК - универсальны.
Я бы если бы что-то делал дома - тоже бы делал все это в виртуалках, благо они сейчас просто космически улучшились относительно того, что было во времена, когда я что-то дома делал для работы (лет 8+ назад, хотя и тогда я тоже уже все старался делать в них). Я и так всякое даже для дома, что ожидаю быть временным, тоже делаю/ставлю/пробую в виртуалках. Для редких случаев, когда что-то в виртуалке не живет как надо - у меня есть разгонный старый ноут с дуалбутом в винду или старый LTS Mint. Для особо экстремального, на всякий случай лежит в подвале старая машина со всеми железными портами типа COM, LPT, FireWire, дискретной графикой, DVD-RW, итд. (справедливости ради, 10 лет ее не включал уже даже :-) Но помню, в каком углу ее искать, буде надо).

Насчет дистрибутива линуха. Если у тебя это основная и рабочая система - не разумнее ли перейти на нечто более конролируемое собой и уйти от сборок на базе круных пакетов (.deb) в сторону чего-то типа Arch или даже Gentoo? Насколько ты описал свои траблы - все, что убунтоподобно, оно скорее всего в конце концов все равно вылезет и посыпятся те же проблемы. Хотя, с другой стороны, периодические скачки с одной системы на другую тоже могут быть интересны как хобби и лишний скиллз, благо в линухе вернуть как минимум все свои структуры данных гораздо быстрее и проще, чем в винде, и такие прыжки на порядок проще.

А что не так с

А что не так с пакетами? Архив и архив, что deb, что rpm.
От способа установки файла в систему, что через пакет, что вручную, ничего не зависит.

Я, кстати, недавно тоже отплясал с зависимостями среды разработки Qt. Ничего, справился вроде.
Единственное, что раздражало, это то, что разные модули Qt распиханы по разным пакетам операционной системы, причём по несколько штук в одном пакете. При этом когда билдер плачется на отсутствующий модуль Qt, нужно с помощью какой-то матери вычислить, в каком пакете Qt этот модуль лежит, а потом также вычислить, в каком системном пакете лежит этот Qt пакет. Имена, разумеется, не совпадают.

С Линухом - согласен. Лучшая стратегия - keep simple. Я ставлю Дебиан в строго минимальной конфигурации и отдельно, ручками, ставлю то, что мне нужно - драйвера, иксы, окошки, тот же мутт и прочая.

Последний раз с

Последний раз с минтом я помню трахался с тем, что один deb пакет тащит за собой кучу зависимых, которые несовместимы с чем-то, что уже стоит или должно поставиться после. Ставим одно - ломаем другое и наоборот. Не все удавалось поставить нескольких версий, когда одна прога хочет некий пакет версии Х, а другая - тот же пакет версии Х+1. Первая в итоге с версией Х+1 перестает работать :-(, а обе версии одновременно - не установить. :-(

А-а, ну так это

А-а, ну так это классические танцы когда ставишь пакеты от другой версии или не родные бэкпорты накатываешь.
Я обычно в таких случаях пользую dpkg + aptitude вместо apt.
Первый позволяет вкрячить пакет не взирая на зависимости, второй предлагает деревья решений для неотрезолвленных зависимостей.

Я бы не был

Я бы не был столь оптимистичен - любой дистрибутив - это попытка навязать тебе ту или иную идеологию. Если железо новое, увы, с драйверами у всех дистрибутивов туго. Тут один хрен, надо бежать к вендору и плясать с бубном.

По поводу свистопляски версий - твоя личная машина это твой продакшн, там нужно управлять рисками. Прыжки с версии на версию - это экспоненциально растущие риски которые тебе явно не нужны.

Хотелки твоего клиента - это его риски, которые он должен оплачивать. Я, когда прыгаю с проекта на проект, либо поднимаю виртуалки под данный конкретный проект, либо беру отдельный физический комп.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.