Одно из моих хобби — находить и тестировать интересные проекты с открытым кодом на Github (реже на публичной части Gitlab). Одна из моих находок — это менеджер пакетов Bauh, о котором я хочу рассказать.
Что это и зачем оно мне?
Bauh представляет собой графическую оболочку, написанную на PyQt5 и предназначенную для управления пакетами программного обеспечения практически в любом дистрибутиве Linux. Да, у вас уже есть Pamac/Synaptic/Dnfdragora, и может быть даже вы используете Gnome Software или Discover, но Bauh вам всё равно не помешает. Почему? Потому что это способ собрать воедино и централизованно управлять сразу несколькими типами самодостаточных пакетов в Linux. И не только. Вот список форматов, которые поддерживаются в Bauh:
Flatpak
Snap
AppImage
Arch AUR
Debian
Web
Интересно, не правда ли? Особенно последний пункт... Но, обо всём по порядку. Как только вы нажмёте значок с шестерёнкой и попадёте в окно настроек Bauh, то скорее всего вы увидите, что в вашей системе прямо сейчас поддерживаются не все форматы пакетов.
Это абсолютно нормально. Едва ли вам получится собрать фулл-хаус (хотя бы из-за невозможного сочетания DEB+AUR), но заставить работать одновременно 5 из 6 поддерживаемых в Bauh форматов вполне реально. Наведите мышь на красный знак вопроса, и Bauh подскажет вам, чего именно не хватает. Я для теста использовал свежую версию Manjaro, в которой "из коробки" уже были и Flatpak, и Snap, поэтому потребовалось доустановить только пакеты для включения пункта Web.
Кстати, вот они:
python-beautifulsoup4
python-lxml
Итак, всё установлено, можно продолжать.
Что я получаю?
Bauh — не просто оболочка, а полноценный магазин приложений. В том смысле, что его полки уже наполнены товаром, и вам дополнительно не надо искать и подключать какие-либо источники. Уже добавлены Flathub и Snap Store и вдобавок доступен модерированный список пакетов с сайта AppImage Hub. Насчёт последних стоит заметить, что не все пакеты с хабаA AppImage будут отображаться в поиске Bauh, так как наш магазин отсекает сборки, у которых нет стабильных релизов в Git. Список прошедших проверку пакетов можно посмотреть тут. Более того, вы можете нажать "кнопку с гамбургером", выбрать пункт Установить файл AppImage и скормить Bauh пакет, который вы ранее скачали самостоятельно. Пакет зарегистрируется в меню вашего рабочего стола, станет отображаться в списке программ внутри Bauh, а исходный файл *.appimage будет перемещён в $HOME/.local/share/bauh/appimage/installed. Да, если для такого приложения Bauh найдёт более новую версию на упомянутом выше хабе, то вы получите возможность обновить пакет. Круто? Ещё бы!
Удобство Bauh заключается в том, что вы можете выбирать, откуда именно ставить приложения. Популярные программы, вроде того же плеера VLC, обычно присутствуют сразу в нескольких источниках. На картинке выше видно, что VLC нашёлся аж в четырёх разных видах. Ничто не мешает поставить их все (вдруг вам надо, мало ли)...
Теперь пару слов о веб-приложениях. Это внутренняя функция Bauh, которая позволяет делать из некоторых веб-сайтов что-то, внешне похожее на десктопное приложение. Нельзя сказать, что Bauh тут пионер, так как подобное мы где-то уже видели, но тут вопрос именно в удобстве. Клац-клац мышкой, и вот web.whatsapp.com уже интегрирован в ваш десктоп. Почему бы и нет?
Список доступных веб-приложений проще всего посмотреть, нажав на кнопку с лампочкой. Это что-то вроде списка рекомендаций.
Если решите, что-то установить, то Bauh сам скачает нужную ему версию Electron, Node и с помощью широко известного в узких кругах нативикатора сделает всё в лучшем виде. Это удобно и приятно, хотя в случае того же WhatsApp есть и альтернативные варианты.
Итак, что в сухом остатке:
Самый широкий охват самодостаточных пакетов для Linux
Возможность систематизировать отдельные пакеты AppImage
Встроенные средства проверки обновлений пакетов (и сами обновления)
Интеграция некоторых веб-приложений
Как установить?
Очень просто:
sudo pip3 install bauh
Надеюсь, вам понравилась моя статья. Как вам тематика, стиль, подача? Интересно было бы в таком виде почитать о других открытых проектах?