Включайте мозг, когда используете чужие пакеты

Пользуясь случаем, на opennet.ru в комментариях рассказал забавную историю про PPA для Ubuntu, выкладываю ее здесь на память.
Читать далее Включайте мозг, когда используете чужие пакеты

Grub2 2.04 с поддержкой сжатия zstd на BTRFS для Ubuntu 18.04 и 19.04

В репозиториях Ubuntu < 19.10 Grub2 2.02, в котором нет поддержки загрузки с корневого раздела BTRFS, сжатого с помощью ZSTD. Собрал Grub2 2.04 из Ubuntu 19.10 для 18.04 и 19.04, в котором есть поддержка загрузки с корневого раздела в btrfs, сжатом zstd. Читать далее Grub2 2.04 с поддержкой сжатия zstd на BTRFS для Ubuntu 18.04 и 19.04

Как версионируются и совмещаются библиотеки из разных репозиториев

Давайте на примере btrfs-progs 4.19.1 и ffmpeg рассмотрим особенности сборки, версионирования пакетов и библиотек в дистрибутивах с продвинутой пакетной системой, то есть Deb или RPM, но не pacman или порты BSD (emerge из Gentoo имеет совсем иные принципы решения этих задач).

deb src: https://gitlab.com/nixtux-packaging/btrfs-progs/tree/master/btrfs-progs-4.19.1/debian
RPM src: https://abf.io/import/btrfs-progs
RPM binary: https://abf.io/build_lists/2957703

В приведенных примерах принцип упаковки и разделения на подпакеты идентичен.
Есть исходный пакет btrfs-progs, то есть исходные коды, расположенные по адресу https://github.com/kdave/btrfs-progs

Как можете наглядно видеть по ссылке «RPM binary: https://abf.io/build_lists/2957703» из одного исходного пакета собраны следующие бинарные, у каждого из которых стоит одинаковое значение %EVRD, то есть эпоха, версия, релиз и дистрибутив (в Альте %EVR вместо %EVRD в Росе):
— btrfs-progs
— libbtrfs0
— libbtrfsutil1
Читать далее Как версионируются и совмещаются библиотеки из разных репозиториев

Вызов LibreOffice в chroot

Для сборки deb-пакета Wirec я использую вызов LibreOffice внутри Makefile, чтобы конвертировать картинку из ODG в SVG. При запуске локально все работало, однако при попытке собрать deb-пакет на Launchpad, то есть при сборке в chroot, возникла ошибка:

libreoffice --convert-to svg --outdir /<>/debian/wirec///usr/share/icons desktop/wirec.odg
javaldx failed!
Warning: failed to read path from javaldx

После исправления Makefile был таким:
Читать далее Вызов LibreOffice в chroot

phpmyadmin: Variable lc_messages can’t be set to the value of ru_RU

У меня на Ubuntu 18.04 + MySQL 8.0 + phpmyadmin + панель Vesta CP возникла такая ошибка:
Variable 'lc_messages' can't be set to the value of 'ru_RU'

Решением стало переименование папки с русской локализацией:
Читать далее phpmyadmin: Variable lc_messages can’t be set to the value of ru_RU

Автоматическое обновление Ubuntu

UPD: приведенный ниже скрипт превратился в целую систему автообновлений с блокировкой выключения во время обновления: system-autoupdate


Замучился постоянно устанавливать обновления на сервер с Ubuntu, unnatended-upgrades не хочу конфигурировать, да и делает он не совсем то, что нужно, поэтому сделал автообновление системы скриптом. Его код ниже. Что делает скрипт, прописано в коде комментариями.
Читать далее Автоматическое обновление Ubuntu

Как я одной командой удалил GNOME [с планшета на KDE и Ubuntu]

Если ставить несколько DE параллельно на одну систему, то может понадобиться удалить одно из них вместе с зависимостями. Статья актуальна для Ubuntu, Debian, Mint, Deepin и других родственников Debian.

У меня есть планшет Chuwi Hi12, и пальцем в KDE работать по ряду причин намного удобнее, чем в GNOME (гномодызайнеры сделали интерфейс, в котором мне и многим другим неудобно работать и мышью, и пальцем). Читать далее Как я одной командой удалил GNOME [с планшета на KDE и Ubuntu]

Удалить остатки ранее удаленных пакетов в Ubuntu/Debian/Mint/Deepin

Когда мы делаем apt remove, то пакет удаляется, но не удаляются его конфиги (сборщик пакета указывает, какие файлы являются конфигами; речь о входящих в пакет конфигах, то есть содержимое домашней папки пользователя не затрагивается). apt purge удаляет и сам пакет, и конфиги и прочие его куски.

apt autoremove удаляет указанный пакет и пакеты-сироты, т.е. те пакеты, которые ранее были установлены автоматически как зависимости, теперь пакет, от них зависящий, уже удален, и эти пакеты больше никому не нужны. apt autoremove --purge делает все то же, что и autoremove, но еще и подчищает остатки пакета, как apt purge. Можно запустить просто apt autoremove или apt autoremove --purge, чтобы подчистить пакеты-сироты, а можно в конец этой команды дописать список пакетов, которые нужно удалить, тогда apt удалит их и подчистит все сироты в системе.

dpkg -l — в выводе этой команды ii в первом столбце означает, что пакет установлен, а rc означает, что он удален, но остались следы.
Давайте удалим следы всех ранее удаленных пакетов:
sudo apt autoremove --purge $(dpkg -l | grep ^rc | grep -v ^ii | awk '{print $2}' | tr '\n' ' ')

Вы можете поэкспериментировать и посмотреть, какой список пакетов выдаст команда, результат которой подставляется в предыдущую:
dpkg -l | grep ^rc | grep -v ^ii | awk '{print $2}' | tr '\n' ' '