Подключил новый SSD-диск к компьютеру (в SATA). Встал вопрос: как бы поставить на него ОС из-под виртуальной машины? Вопрос решился просто:
Читать далее Установка ОС на физический диск в виртуальной машине
Как в 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. Чистка включает в себя:
- анализ, чем занято место на диске, через консольную утилиту ncdu, удаление ненужного
- удаление старых снапшотов (резервных копий)
- проведение
btrfs balance /точка_монтирования
Выше написан правильный порядок действий. А я сначала удалил ненужные снапшоты, а потом начал пытаться запустить ncdu. В результате фоном работает процесс btrfs-cleaner, который создает большую нагрузку на ввод-вывод с небыстрого HDD диска, и все остальное работает очень медленно. Нужно было делать в той последовательности, которая описана выше, чтобы фоновые операции, создающие большую нагрузку на систему, выполнялись уже после завершения всех работ человеком.
Запуск abf rpmbuild с сохранением лога в файл
script -c "sh -c \"abf rpmbuild 2>&1\"" build.log
Что нужно для сборки программы на базе библиотеки в 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]
:
Читать далее Как удалить сразу все сноски [*] после копипасты из Википедии