Как в GNU/Linux работает резолвинг DNS? Как система превращает имя DNS в IP-адрес?

Почти все программы слинкованы с системной glibc (libc.so.6). Когда в glibc поступает запрос на резолвинг имени хоста, поочередно опрашиваются плагины NSS (Name Switch Service), прописанные в /etc/nsswitch.conf в строке hosts. В случае

rosa-2016 ~ # cat /etc/nsswitch.conf | grep ^hosts
hosts:     mdns4_minimal files nis dns wins myhostname mymachines mdns4 
rosa-2016 ~ #

сначала будет попытка разрешить имя через Avahi по протоколу multicast DNS (mdns4_minimal), затем через файл /etc/hosts (files), затем через nis (устаревшая штука), затем, собственно, сам dns. Кто первый ответит, тот ответ и принимается.

Отладка dlopen (динамической подгрузки) библиотек в Linux/UNIX

Понадобилось узнать, почему FreeIPA выдавала ошибку загрузки библиотеки, не выдавая подробный текст ошибки. Этот способ позволяет выполнять dlopen() библиотек и смотреть, успешно ли прошла операция, и видеть ошибки.
Используется Python CFFI.
Читать далее Отладка dlopen (динамической подгрузки) библиотек в Linux/UNIX

Пример использования valgrind для отладки в т.ч. зависания программы

named-pkcs11 при запуске зависает.
Читать далее Пример использования valgrind для отладки в т.ч. зависания программы

Использование системного youtube-dl в Youtube DL GUI (Youtube DLG)

Есть весьма корявенькая, но очень полезная программа Youtube DLG — графический интерфейс для youtube-dl — программы для скачивания с Youtube, Вконтакте, Facebook, Одноклассников Яндекс Диска и множества других сайтов.

Читать далее Использование системного youtube-dl в Youtube DL GUI (Youtube DLG)

Дефрагментирование BTRFS со снапшотами

У меня был read only снапшот примерно 1.5 ТБ данных, на диске было свободно около 900 ГБ. Запeстил дефрагментацию (btrfs defrag). В итоге получил ошибку, что не осталось свободного места, а место реально закончилось. Это произошло потому, что снапшот был read only, то есть доступен только на чтение, при дефрагментации выполнялось копирование файлов в новое расположение, а из read only снапшота их удалить нельзя, поэтому место закончилось. Удалили снапшот, место освободилось.
Нагуглил по этому вопросу:
1) «Is it dangerous to defragment subvolume which has readonly snapshots?»
2) Обсуждение в рассылке «defragmenting best practice?»

Особенность чистки файлового хранилища на BTRFS

Решил почистить файловое хранилище на BTRFS. Чистка включает в себя:

  1. анализ, чем занято место на диске, через консольную утилиту ncdu, удаление ненужного
  2. удаление старых снапшотов (резервных копий)
  3. проведение btrfs balance /точка_монтирования

Выше написан правильный порядок действий. А я сначала удалил ненужные снапшоты, а потом начал пытаться запустить ncdu. В результате фоном работает процесс btrfs-cleaner, который создает большую нагрузку на ввод-вывод с небыстрого HDD диска, и все остальное работает очень медленно. Нужно было делать в той последовательности, которая описана выше, чтобы фоновые операции, создающие большую нагрузку на систему, выполнялись уже после завершения всех работ человеком.

Что нужно для сборки программы на базе библиотеки в UNIX-подобных ОС

Есть бинарный (то есть уже скомпилированный) файл-библиотека kompas.so.6. Если она упакована по правилам дистрибутива, то kompas.so.6 входит в пакет libkompas6, а симлинк kompas.so -> kompas.so.6, заголовочные файлы /usr/include/kompas/*.h и файл pkgconfig /usr/lib64/pkgconfig/kompas.pc (в случае Debian, т.к. в нем не биарч, а мультиарч, вместо /usr/lib64 будет /usr/lib/$ABI/) входят в пакет libkompas-devel
Читать далее Что нужно для сборки программы на базе библиотеки в UNIX-подобных ОС

Как удалить сразу все сноски [*] после копипасты из Википедии

Чтобы из текста, скопированного, например, из Википедии быстро удалить все сноски вида [5]:
Читать далее Как удалить сразу все сноски [*] после копипасты из Википедии

PulseJoin 2.3

Вышла новая версия 2.3 PulseJoin (https://gitlab.com/mikhailnov/pulsejoin) — GUI для создания виртуального микрофона PulseAudio, с которого можно записывать звук одновременно настоящего микрофона и тот, что выводится на динамики.

В версии 2.3:
* добавлен перевод на испанский язык
* исправлены ошибки
* улучшена обработка возникающих в ходе работы ошибок