Похоже матушка-природа работает на Debian Linux
источник https://t.me/tipsysdmin/2265
источник https://t.me/tipsysdmin/2265
Взято из телеграмма - Инкогнито
Решил я тут обновить свой рабочий Debian с 11 до 12 (bullseye -> bookworm) и обнаружил, что в новой версии NFS внезапно стал требовать Python:
$ apt-cache depends nfs-common | grep python
Depends: python3
NFS-клиент, Карл!! Компонент для подключения к сетевым шарам, написанный на C, внезапно требует наличия в системе прикладного ЯП общего назначения! По запросу в гугле "nfs python dependency" выдаётся список ишью, в которых другие юзеры испытывают такое же точно недоумение.
Дальше веселее: дальнейшее исследование показало, что весь питон в этом пакете представлен ровно 1 вспомогательным файлом nfsconvert.py, цель которого - конвертировать старый многофайловый формат конфигурации /etc/default/nfs-* в новый монолитный формат /etc/nfs.conf. Т.е. весьма нехитрая обработка текстового конфига, которую можно сделать хоть на шелле хоть на перле, который, на минуточку, в отличие от Python является штатным компонентом пакетной системы в Debian. Но кто-то ****#!!@ ничего кроме своего питона не знает и кроме того считает, что python должен идти в поставке дистрибутива.
Эта зараза уже давно в дебиане, многие пакеты тащат с собой кучу зависимостей (в Depends, не в Suggests), которые нужны 2.5 анонимам в специфических случаях, но тем не менее входят в поставку. Чтобы не быть голословным:
$ apt-cache depends mplayer | grep python
Depends: python3
Медиаплееру нужен питон, а что вы думали? Это для python bindings, сам плеер написан на C++.
$ apt-cache depends mpd | grep smb
Depends: libsmbclient-dev
Крохотному консольному аудиоплееру на C++ нужна Samba (которая в свою очередь тащит Python). Т.е. система типа не умеет монтировать Windows шары в обычную директорию (очевидно, из-за того, что в ней не стоит самба) чтобы скормить из неё файлы в плеер, но вдруг нам захочется подключиться напрямую к Windows шаре с музыкой! Решение: надо просто притащить самбу зависимостью! Гениально! Также этот плеер тащит много всякой другой каки, вроде Sphynx (система для генерации доков, по размеру думаю сравнима со всеми остальными зависимостями вместе взятыми).
Из-за всего этого мне приходится у себя держать набор патченых сборок deb-пакетов с порезанными зависимостями, но их же тоже нужно обновлять и пересобирать, я из разработчика превращаюсь в мать его мейнтейнера дистрибутива. Проще конечно не заморачиваться и ставить все зависимости и экономить своё время, но мне честно говоря обидно за Debian, когда-то он был классическим гикодистром, при прямых руках его можно было сделать компактнее даже многих минималистичных дистров вроде Slackware, при этом не надо было знать ничего сверх базовых команд Apt.
Добрый день.
Маршрутизатор работает на Vyatta, основанной на Debian.
Сервисов DNS, DHCP, да и любых других, кроме Squid, на маршрутизаторе нет.
На маршрутизаторе поднят Squid 3.5.28, в связи с этим возникло пару вопросов:
Не запускается автоматом Squid при рестарте железки. Как поправить ?
После рестарта, вручную приходиться делать: sudo systemctl start squid
sudo systemctl enable squid - не работает.
В локальный сети есть DNS-сервер с прописанными корневыми серверами, этим сервером с успехом пользуются компьютеры находящиеся в локальной сети.
Как заставить Squid пользоваться этим DNS-сервером ?
Сейчас Squid работает только с публичными серверами прописанными в squid.conf.
Да и сам маршрутизатор не может почему-то пользоваться локальным DNS-сервером.
Почему онлайн-радио через Squid заикается и перестаёт играть ?
может попеть 10 сек. и встать или 10 мин. попеть и тоже встать.
_______________________
заберите пост, если вам подходит
Всем привет! Думаю, многие из тех, кто хоть как-то связан с IT, знают про популярные live-дистрибутивы, которые можно носить с собой в кармане для решения различных задач (восстановление системы, разметка диска, резервное копирование и многое другое), такие как Slax, Puppy Linux, Porteus или отечественные проекты PuppyRus, MagOS. Сегодня мы с вами соберём свой дистрибутив на флешке на базе Debian.
Что нам понадобится? Дистрибутив на базе Debian (оптимальным выбором будут последние версии Debian, Ubuntu или Mint), либо любой дистрибутив с установленным Docker и немного времени (все операции, описанные в данной статье, включая сборку, занимают не более получаса при наличии достаточно быстрого канала в Internet).
Первые шаги
Собирать мы будем скриптами MiniOS Live, так как они имеют относительно низкий порог вхождения и позволяют собрать вариант с любым набором пакетов на базе Debian 9-Sid.
git clone --depth=1 https://github.com/minios-linux/minios-live.git
Изначально, скрипты настроены на сборку варианта MiniOS Standard на базе Debian 11 с архитектурой amd64. Собрать этот вариант можно достаточно просто
cd minios-live
./install -
либо для Docker
cd minios-live/docker
./01-runme.sh
docker run -it --name mlc --privileged --device-cgroup-rule='b 7:* rmw' -v /dev:/dev -v /home/username/build:/build local/mlc /build/minios-live/install -
где /home/username/build - папка, содержащая minios-live.
Вот что у нас получится в итоге:
Основной файл конфигурации сборки MiniOS - minios-live/linux-live/buildconfig, для большинства переменных указано их назначение и значения, которые они могут принимать. В нём можно выбрать готовые наборы пакетов и настроек, архитектуру, изменить стандартный initrd и многое другое.
Модификация базовой системы
Сборка базовой системы 00-core производится из скриптов, расположеных в minios-live/linux-live/basesystem/00-core, там вы можете найти списки пакетов для каждого варианта сборки и изменить их (часть пакетов устанавливается скриптом install, так как в разных дистрибутивах один и тот же пакет может иметь разные названия).Там же расположена папка rootcopy-install, данные из неё автоматически копируются в систему перед началом установки. Для копирования данных в систему после установки создайте папку rootcopy-postinstall и разместите данные в ней. В самом конце выполняется скрипт postinstall.
Модификация/создание модулей
Скрипты, из которых собираются модули, располагаются в minios-live/linux-live/scripts, менять наименования модулей 00-09 нельзя. Наименования скриптов сборки, списков пакетов и папок те же, что и для базовой системы, но теперь к ним добавляется скрипт build. В нём указываются операции сборки ПО из исходных кодов, данный скрипт выполняется после install. При этом, данные, полученные после выполнения install, сохраняются в папке squashfs-root. После сборки ПО скомпилированные файлы необходимо скопировать в эту папку, в конце скрипта необходимо добавить эти строки
if [ $COMP_TYPE = "zstd" ]; then
time mksquashfs /squashfs-root /$MODULE.$BEXT -comp $COMP_TYPE -Xcompression-level 19 -b 1024K -always-use-fragments -noappend >>$OUTPUT 2>&1
else
time mksquashfs /squashfs-root /$MODULE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -noappend >>$OUTPUT 2>&1
fi
Пакеты, установленые скриптом build не сохраняются в системе. Пример такого скрипта можно посмотреть здесь minios-live/linux-live/scripts/04-slax-desktop. Если вам необходимо установить модуль DKMS так, чтобы в системе не осталось пакетов, необходимых для сборки (заголовки ядра и прочие), создайте в папке скриптов модуля файл is_dkms_build, тогда в модуль после работы скрипта build будут скопированы только модули ядра. Пример: minios-live/linux-live/scripts/01-kernel. Для создания простого модуля, где необходима только установка пакетов, используйте в качестве примера скрипты модуля 10-galculator:
cd minios-live/linux-live/scripts
cp -r 10-galculator 10-openshot
замените в packages.list galculator на openshot. В packages.list можно в столбик указать любые пакеты из репозитория Debian, которые вы хотите иметь в модуле. В качестве имени модуля будет использоваться имя первого пакета в списке.
Сборка системы с включением своих модулей
Сборка системы с модулями осуществляется из папок в minios-live/linux-live/modules, где расположены ссылки на папки скриптов, из которых собираются модули. В minios-live/linux-live/modules есть скрипт create_symlinks.sh, с помощью которого можно создать структуру модулей. Например, мы хотим собрать MiniOS с Chromium вместо Firefox, для этого необходимо отредактировать create_symlinks.sh.
#!/bin/bash
if [ ! -d $1 ]; then
mkdir -p $1
fi
for file in $1/00-minios \
$1/01-kernel \
$1/02-firmware \
$1/03-xorg \
$1/04-xfce-desktop \
$1/05-xfce-apps \
$1/10-chromium; do
if [ -L $file ]; then
rm $file
fi
ln -s ../../scripts/$(basename $file) $file
done
Затем запустите скрипт:
create_symlinks.sh xfce-chromium
измените DESKTOP_ENVIRONMENT в buildconfig на xfce-chromium. Обратите внимание, сохранять "xfce", если вы используете XFCE, в наименовании варианта системы и в начале переменой DESKTOP_ENVIRONMENT обязательно.
Сборка модулей для собранной системы
Допустим, вы только что собрали собрали систему и вам необходимо внести изменения модуль. В папке minios-live/build/bullseye-standard-amd64/image/minios (для других вариантов папка может называться иначе) удалите модуль и все модули, которые по алфавиту располагаются после него, затем запустите сборку:
./install build_modules -
Для версии Frugal для модулей с порядковыми номерами 10 и выше удалять модули, располагающиеся по алфавиту после, не надо.
Надеюсь, у вас получится собрать систему под себя достаточно быстро. Если есть вопросы по сборке - пишите комментарии, буду рад помочь. А на сегодня всё. Надеюсь, этот первый пост не станет последним)
Курс для тех, для тех кто хочет начучится строить отказоустойчивые кластера виртуализации для запуска современных сервисов, рассчитанных под высокую нагрузку
Вы сможете строить системы с использованием современных популярных сервисов на базе Linux и разберетесь в каких проектах применяются те или иные сервисы.
Курс подойдет для администраторов Linux и DevOps
так же в тг могут быть материалы которые ещё не вышли на пикабу или не выйдут вовсе
Тогда этот вызов для вас! Мы зашифровали звездных капитанов команд нового юмористического шоу, ваша задача — угадать, кто возглавил каждую из них.
Переходите по ссылке и проверьте свою юмористическую интуицию!
Курс для тех, для тех кто хочет начучится строить отказоустойчивые кластера виртуализации для запуска современных сервисов, рассчитанных под высокую нагрузку
Вы сможете строить системы с использованием современных популярных сервисов на базе Linux и разберетесь в каких проектах применяются те или иные сервисы.
Курс подойдет для администраторов Linux и DevOps
PS: мы залили все части в тг
так же там могут быть материалы которые ещё не вышли на пикабу или не выйдут вовсе