Записки IT специалиста
前往频道在 Telegram
IT-канал, просто о сложном https://interface31.ru Купить рекламу: https://telega.in/c/interface31
显示更多8 856
订阅者
+524 小时
+227 天
+7930 天
帖子存档
На FirstVDS стартовала акция ко Дню гика
В рамках акции можно (и нужно):
• получить скидку до 30% на заказ новых VDS,
• подключить спецтариф FirstGeek по фиксированной цене,
• поучаствовать в онлайн‑турнире на сайте,
• получить монеты и обменять их на настоящие призы,
• поучаствовать в розыгрыше игровых приставок.
Среди главных призов:
👾PS5 Pro 2 ТБ
🎮Steam Deck OLED 512 ГБ
🎯сертификаты на баланс FirstVDS
Вперед в битву гиков!
#реклама
О рекламодателе
Обновление PostgreSQL в Docker через pg_upgrade
Продолжаем тему обновления контейнеров PostgreSQL между мажорными версиями, в прошлой заметке мы рассмотрели миграцию при помощи утилиты pg_dumpall.
Это простой и надежный способ, но у него есть один существенный недостаток: pg_dumpall – однопоточен, использует для выгрузки и загрузки только одно ядро и выполняет все операции последовательно, как они записаны в файле дампа.
На крупных и даже средних базах такой подход может привести к неконтролируемому времени простоя, что неприемлемо. Поэтому сегодня мы рассмотрим миграцию при помощи другой утилиты - pg_upgrade.
Преимущество pg_upgrade в том, что он не делает экспорт/импорт, не пересоздает всю структуру СУБД, а работает на уровне файлов базы данных.
Итак, приступим, допустим мы изначально имеем:
services: db: container_name: postgres-dbВ нашем случае: ▫️ db — имя сервиса Compose ▫️ postgres-db — реальное имя контейнера Docker 1️⃣ Остановим весь стек и запустим обратно только контейнер с СУБД для создания резервной копии, это исключит возможную запись в БД во время выгрузки:
docker compose stop
docker compose up -d db
Теперь выполним выгрузку дампа всего кластера:
docker exec -t postgres-db pg_dumpall -U postgres > full_backup.sql
Проверяем, что файл дампа создан и останавливаем контейнер с БД:
docker compose down2️⃣ Следующие шаги будут несколько различаться в отличие от того, используем ли мы Named Volumes или Bind mount. 🔹 При Named Volumes создаем дополнительный именованный том для нового кластера СУБД:
docker volume create pg_data_18
И запускаем специальный контейнер для апгрейда:
docker run --rm \
-e POSTGRES_USER=postgres \
-v pg_data:/var/lib/postgresql/17/data \
-v pg_data_18:/var/lib/postgresql/18/data \
tianon/postgres-upgrade:17-to-18
Данный контейнер НЕ является официальным образом PostgreSQL, это community image от Tianon Gravi, но он де-факто является стандартом в мире Docker.
Обратите внимание на тег контейнера, он указывает версии, с которой и на которую мы переходим, в нашем случае это 17-to-18, в других случаях выбирайте контейнер с нужным тегом.
Затем меняем Compose, было:
services: db: image: postgres:17 volumes: - pg_data:/var/lib/postgresql/data volumes: pg_data:Стало:
services: db: image: postgres:18 volumes: - pg_data_18:/var/lib/postgresql/data volumes: pg_data_18:🔹 Для Bind mount создаем новую директорию:
mkdir ./data/postgres-data-18
И запускаем служебный контейнер:
docker run --rm \
-e POSTGRES_USER=postgres \
-v ./data/ postgres-data:/var/lib/postgresql/17/data \
-v ./data/postgres-data-18:/var/lib/postgresql/18/data \
tianon/postgres-upgrade:17-to-18
Затем меняем Cpmpose, было:
services: db: image: postgres:17 volumes: - ./postgres-data:/var/lib/postgresql/dataСтало:
services: db: image: postgres:18 volumes: - ./postgres-data-18:/var/lib/postgresql/data3️⃣ Запускаем стек:
docker compose up -d
И выполняем оптимизацию базы:
docker compose exec -T db vacuumdb -U postgres --all --analyze-in-stages
Это не мешает работе и можно запускать уже на работающем стеке. Старые тома лучше всего оставить на некоторое время, пока вы не убедитесь, что обновление прошло нормально.Автомобили из Европы под ключ
Привезем авто в Россию быстро и надежно. Без предлоплаты⚡
Заключаем договор, полное сопровождение на всех этапах👌
Экономия до 30% в зависимости от марки и модели✅
Льготным категориям граждан предоставляем скидку💰
Пишите менеджеру для консультации📱
Купить
#реклама
О рекламодателе
+4
Store CLI – интерфейс командной строки для Microsoft Store
Не так давно без лишнего шума и анонсов в последних выпусках Windows появилась утилита командной строки Store CLI, предназначенная для работы с магазином Microsoft.
Для ее использования откройте терминал и просто наберите:
storeИ вы получите короткую справку, которой достаточно чтобы начать с ней работать. Для просмотра уже установленных из магазина приложений выполните:
store installedДля поиска обновлений отдельного приложения выполните:
store update AppNameСразу для всех:
store updatesЧтобы установить обновления добавьте ключ
–apply:
store update AppName --apply store updates –applyДля поиска приложений используйте:
store search AppNameТакже можно искать по расширению:
store extension mp4И вы получите все приложения для работы с mp4. Если вы хотите подобрать альтернативы приложению, то выполните поиск похожих:
store similar vlcДля просмотра каталога можно воспользоваться специальными командами, например, сначала просмотрим категории и субкатегории:
store app-categoriesТеперь выведем топ бесплатных приложений определенной категории:
store browse-apps top-free --category "Utilities & tools"Или топ платных в субкатегории:
store browse-apps top-paid --subcategory "Personal Security"Найдя нужное приложение, мы можем установить его командой:
store install AppName/IDВ качестве параметра можно указать имя приложения или ID, второе предпочтительно, так как однозначно определяет приложение, даже если опубликовано несколько его версий. Например, для установки VLC можно использовать команды:
store install VLC store install XPDM1ZW6815MQMВозможности удаления приложений магазина в данной версии консольной утилиты нет.
Вебинар MPLS в маршрутизаторах ESR. Часть 1. L2VPN!
Мы обещали вернуться с подробностями, и мы это делаем. Пришло время окончательно разобраться, почему MPLS называют «слоем 2.5» и как заставить его работать на благо вашей сети.
📌 1 июня 2026 (понедельник)
🕐 14:00 (по МСК)
Начинаем серию вебинаров по технологии, которая не теряет актуальности и остается базой для современных сетей.
📚 Что разберем на первой встрече:
➖Вспомним теорию — зачем вообще нужен MPLS и почему его называют «L2.5» ➖L2VPN Martini mode ➖L2VPN Kompella mode🎙 Спикер: Алексей Листаров — инженер с многолетним опытом работы в крупном операторе связи. Сертифицированный преподаватель нашего авторизованного учебного центра Академии Eltex. 🔗 Регистрация Готовьте свои вопросы по конфигурации, будем разбираться вместе! #eltex #eltexcm #webinar #вебинар #esr #mpls #kompella #martini #mode @eltexcm #реклама О рекламодателе
Особенности установки УТМ ЕГАИС на Debian 13
Сегодня попробовали установить УТМ ЕГАИС на свежий дистрибутив Debian 13. Сама установка не вызывает особых сложностей и ее можно выполнить по нашей статье:
🔹 ЕГАИС. Устанавливаем УТМ 4.2.0 на Debian (Ubuntu)
При этом, вместо
libncurses5:i386 следует устанавливать libncurses6:i386, а библиотека SSL называется libssl3t64 и скорее всего будет установлена по умолчанию.
Сам пакет u-trans тоже ставится без особых проблем, запускается, но не работает. Если вы откроете лог, то увидите, что УТМ не может обнаружить ключ. Странно, ведь инсталлятор увидел Рутокен и инструменты диагностики тоже его видят.
Поэтому читаем лог дальше и находим интересные записи:
/opt/utm/lib/librtpkcsllecp.so: невозможно задействовать исполняемый стек, как требует разделяемый объектЭто значит, что библиотека требует наличия executable stack (исполняемый стек), который отключен в Debian 13 по соображениями безопасности (а также в Ubuntu, начиная с 25.10). 👆 Включить данную технологию не представляется возможным (во всяком случае без глубокого изменения системы), поэтому можно считать, что УТМ ЕГАИС несовместим с Debian 13 и грядущей Ubuntu 26.04 LTS. 😉 Ну если, конечно, разработчики Росалкогольтабакконтроль не перепишут программу, но надежды на это призрачные, с учетом того, что u-trans для Linux до сих пор 32-битное приложение. С другой стороны, у нас все-таки Linux и каждый тут сам кузнец собственного счастья. Указанные в ошибках библиотеки являются библиотеками PKCS11Lib от Рутокен и поставляются вместе с пакетом УТМ. Поэтому мы можем заменить их на более современные версии библиотек от Рутокен, которые не требуют executable stack. Скачать их можно на https://download.rutoken.ru в разделе /Rutoken/PKCS11Lib/Current/Linux/x32/, просто качаем
librtpkcs11ecp.so.
Для этого перейдем в домашнюю папку и скачаем библиотеку через wget, в нашем случае это последняя на сегодня версия, вам же потребуется уточнить версию библиотеки:
cd ~
wget https://download.rutoken.ru/Rutoken/PKCS11Lib/Current/Linux/x32/librtpkcs11ecp.so
Затем останавливаем УТМ, заменяем необходимые библиотеки (их там две копии) и снова запускаем УТМ:
supervisorctl stop utm
cp -v librtpkcs11ecp.so /opt/utm/lib/librtpkcs11ecp.so
cp -v librtpkcs11ecp.so /opt/utm/lib/librtpkcs11ecp-replica.so
supervisorctl start utm
После чего все запускается и отлично работает. Посмотреть лог УТМ в реальном времени можно командой:
tail -f /opt/utm/transport/l/transport_info.log
Но данное действие вам придется выполнять всякий раз после переустановки или обновления УТМ.
❗️Также обратите внимание, что данный способ проверен только с токенами Рутокен и работа с JaCarta не проверялась и не гарантируется.
👉 Кроме того, добавим – непосредственной необходимости ставить УТМ ЕГАИС на Debian 13 в текущий момент нет, сервис это сугубо внутренний и при необходимости может эксплуатироваться даже на устаревших версиях системы.Яндекс Музыка до 360 дней бесплатно
Яндекс Музыка для вас и 3-х ваших близких.
Кинопоиск и Яндекс Книги тоже в подписке.
Попробуйте бесплатно❤️
Слушать
#реклама 18+
music.yandex.ru
О рекламодателе
+1
УТМ ЕГАИС 403 Forbidden - Доступ к странице с данного IP не разрешен
С такой ошибкой столкнулся сегодня один наш коллега. Предыстория проста. В самом веб-интерфейсе UTM есть фильтр IP-адресов, в котором можно указать доверенные адреса и сети, обращения с других адресов будут отклоняться.
А дальше – проще, немного не подумал или опечатался и доступа у тебя больше нет. Как раз этим наш коллега и решил заняться, тем более что в регионе у нас три «для трезвости» подряд. Но что-то пошло не так и доступ пропал отовсюду.
Поиск в сети, к удивлению, результатов не дал, везде написана какая-то ерунда, а в тематических сообществах и вовсе советуют переустановить УТМ, он бы так и сделал, но за неожиданные выходные в УТМ собралось много входящих документов.
В любом случае переустановка – это не наш метод, всегда следует разобраться в проблеме, иначе переустанавливать на каждый чих просто утомишься.
Итак, белые списки, если они есть, то должны где-то хранится, а каком-то конфигурационном файле. Вот поиском этого и займемся. Недолгие поиски привели нас к файлу
transport/conf/transport.properties в директории установки УТМ. У нас указан путь для Linux установки, в Windows его расположение аналогично.
В самом низу он содержит две интересные опции:
web.server.attempt.ip = web.server.access.ip =Первая – это список адресов, с которых были попытки подключений. Хотя зачем они в конфиге? Логично было бы хранить их в логе. А вот последняя – это и есть наш белый список. Можете откорректировать его до нужных значений, а можете просто очистить. Ошибка нашего коллеги была классическая, он набрал 192.186.х.х вместо 192.168.х.х. После чего просто перезапустите службу УТМ и доступ восстановится.
60 дней бесплатно — грант от Yandex Cloud
Запустили программу миграции в Yandex Cloud. Для компаний, которые переносят инфраструктуру с другого облака, хостинга или своих серверов.
Что получаете:
✅ Грант без лимита — покрываем потребление на 60 дней
✅ Консультация архитектора — план миграции и проектирование
✅ Персональный менеджер на всём пути переезда и после
Yandex Cloud — 75+ сервисов, 4 дата-центра, соответствие 152-ФЗ, ГОСТ Р 57580 и GDPR. Платите только за реальное потребление.
📊 Предложение до 20 июня. Оставьте заявку — рассчитаем грант под ваш проект.
Узнать больше
#реклама 16+
yandex.cloud
О рекламодателе
Обновление PostgreSQL в Docker через pg_dumpall
Обновление PostgreSQL между мажорными версиями задача не самая простая, недостаточно просто загрузить новый контейнер, нужно еще выполнить конвертацию структуры кластера СУБД, которая меняется от версии к версии.
Для небольших и средних баз идеально использовать импорт/экспорт при помощи утилиты pg_dumpall, что полностью исключает риск повреждения исходных данных, плюс у вас на руках всегда остается актуальная резервная копия в виде дампа всего кластера.
Итак, приступим, допустим мы изначально имеем:
services: db: container_name: postgres-dbВ нашем случае: ▫️ db — имя сервиса Compose ▫️ postgres-db — реальное имя контейнера Docker 1️⃣ Остановим весь стек и запустим обратно только контейнер с СУБД, это исключит возможную запись в БД во время выгрузки:
docker compose stop
docker compose up -d db
Теперь выполним выгрузку дампа всего кластера:
docker exec -t postgres-db pg_dumpall -U postgres > full_backup.sql
Проверяем, что файл выгрузки создан. После чего останавливаем контейнер с БД:
docker compose down2️⃣ Следующие шаги будут несколько различаться в отличие от того, используем ли мы Named Volumes или Bind mount, но в любом случае наша задача запустить новый контейнер СУБД с пустым томом. 🔹 Для Named Volumes было:
services: db: image: postgres:17 volumes: - pg_data:/var/lib/postgresql/data volumes: pg_data:Стало:
services: db: image: postgres:18 volumes: - pg_data_18:/var/lib/postgresql/data volumes: pg_data_18:🔹 Для Bind mount было:
services: db: image: postgres:17 volumes: - ./postgres-data:/var/lib/postgresql/dataСтало:
services: db: image: postgres:18 volumes: - ./postgres-data-18:/var/lib/postgresql/data3️⃣ Запускаем СУБД:
docker compose up -d db
Мы нее запускаем весь стек, чтобы раньше времени приложения не начали писать в новую чистую БД.
Ждем пока база инициализируется и готова будет принимать соединения, для этого выполним команду:
docker logs -f postgres-db
Как только появится сообщение:
database system is ready to accept connectionsМожно двигаться дальше. Загружаем дамп кластера СУБД:
docker exec -i postgres-db psql -U postgres < full_backup.sql
Теперь запускаем весь стек:
docker compose up -d
4️⃣ После чего рекомендуется выполнить оптимизацию загруженной базы:
docker exec -it postgres-db vacuumdb -U postgres --all --analyze-only
Это не мешает работе и можно запускать уже на работающем стеке. Старые тома лучше всего оставить на некоторое время, пока вы не убедитесь, что обновление прошло нормально.Получи грант до 1,35 млн руб. на обучение в магистратуре
Хочешь развиваться в сфере ИТ и получить фундаментальные знания с практикой?
Поступай в магистратуру Центрального университета!
— 4 офлайн программы по востребованным направлениям ИТ
— 2 онлайн-программы: машинное обучение и продуктовый менеджмент
— 550 грантов до 75%
— Вечерние занятия и учеба по выходным — удобно совмещать с работой
— Обучение по модели STEM-образования: на стыке науки, технологий и бизнеса
— Возможность стажировок и трудоустройства в ведущих компаниях
— Государственный диплом за 2 года
Магистратура в Центральном университете — это современный подход к образованию, сильный преподавательский состав и актуальные кейсы от индустрии. Оставляй заявку на грант уже сейчас!
Зарегистрироваться
#реклама 16+
cu.ru
О рекламодателе
Настраиваем Visual Studio Code для удаленной работы через SSH
Сегодня все чаще и чаще для конфигурационных файлов используются продвинутые текстовые форматы, такие как JSON или XML, имеющие строгий синтаксис и структуру.
Их применение облегчает программную обработку данных, но при этом они все еще остаются легко читаемыми человеком.
Однако работа с ними в привычных консольных редакторах имеет ряд неудобств, в частности связанных с соблюдением синтаксиса и формата разметки.
Поэтому гораздо удобнее использовать для этого специальные среды разработки, например, VS Code, тем более что он прекрасно умеет работать через SSH.
✅ Читать далее: https://interface31.ru/post/nastraivaem-visual-studio-code-dlya-udalennoy-raboty-cherez-ssh/
20 лет в hardware-индустрии. Начинал инженером в Acronis в 2004-м, дорос до вице-президента Рикор — одного из крупнейших производителей электроники в РФ.
Сейчас работаю на себя: компания инженерных решений AG Bureau и собственный SaaS — каталогизатор поставщиков железа.
Завёл канал, чтобы делиться тем, что обычно остаётся в переговорных. Без пресс-релизов и маркетингового глянца.
О чём пишу:
— Реальные FOB/EXW-цены на серверное железо, память, SSD из моих контрактов
— Что происходит у азиатских поставщиков: предоплата, сроки, доступность компонентов
— Прогнозы по дефициту DDR5, NAND, серверных CPU с цифрами и обоснованием
— Импортозамещение в hardware глазами того, кто реально с этим живёт
— Дневник запуска собственного AI-продукта для каталогизации
Если работаешь с инфраструктурой, серверами или развиваешь hardware-направление — заходи: https://tglink.io/939e5fc064487b?erid=2W5zFH4wpWu
#реклама
О рекламодателе
+3
TinyFileManager – простой и эффективный файловый веб-менеджер
В современных условиях часто встает вопрос удобного предоставления доступа к файлам самых разнообразных пользователей, в том числе мобильных и удаленных. Протокол SMB для этой задачи не самая лучшая идея, а создавать дублирующие хранилища наподобие Nextcloud избыточно.
Для такого случая может пригодиться TinyFileManager – простой файловый веб-менеджер в виде единственного PHP-файла. Но разработчик, судя по всему, сосредоточился именно на развитии самого скрипта, а подходы к созданию Docker-образа мягко скажем сомнительны. Поэтому образ мы будем собирать самостоятельно.
Общая структура проекта:
/opt/tinyfm/ ├── Caddyfile ├── config.php ├── php-session.ini ├── docker-compose.yml ├── Dockerfile └── data/Dockerfile
FROM php:8.3-fpm-alpine
WORKDIR /var/www/html
RUN apk add --no-cache \
libzip-dev \
libpng-dev \
libjpeg-turbo-dev \
freetype-dev \
oniguruma-dev \
bzip2-dev \
curl \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install zip gd mbstring bz2
RUN curl -L -o index.php https://raw.githubusercontent.com/prasathmani/tinyfilemanager/master/tinyfilemanager.php \
&& chown -R www-data:www-data /var/www/html
docker-compose.yml
services: tinyfilemanager: build: . container_name: tinyfilemanager restart: unless-stopped user: "82:82" volumes: - app_code:/var/www/html - ./data:/var/www/html/data - ./config.php:/var/www/html/config.php:ro - ./php-session.ini:/usr/local/etc/php/conf.d/session.ini:ro tmpfs: - /tmp:uid=82,gid=82,mode=1777 security_opt: - no-new-privileges:true cap_drop: - ALL caddy: image: caddy:2-alpine container_name: tinyfm-caddy restart: unless-stopped ports: - "80:80" - "443:443" - "443:443/udp" volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - app_code:/var/www/html:ro - ./data:/var/www/html/data:ro - caddy_data:/data - caddy_config:/config depends_on: - tinyfilemanager volumes: app_code: caddy_data: caddy_config:Caddyfile
files.example.com {
#tls internal
encode gzip zstd
header {
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
X-Content-Type-Options nosniff
X-Frame-Options DENY
Referrer-Policy no-referrer
}
root * /var/www/html
php_fastcgi tinyfilemanager:9000
file_server
}
php-session.ini
session.gc_maxlifetime = 300 session.cookie_lifetime = 300 session.use_strict_mode = 1 session.cookie_secure = 1 session.cookie_httponly = 1 session.cookie_samesite = Lax session.save_path = "/tmp"config.php
<?php
$root_path = '/var/www/html/data';
$root_url = 'data';
$http_host = $_SERVER['HTTP_HOST'];
$use_auth = true;
$auth_users = array(
'admin' => '$2y$10$/K.hjNr84lLNDt8fTXjoI.DBp6PpeyoJ.mGwrrLuCZfAwfSAGqhOW', //admin@123
'user' => '$2y$10$Fg6Dz8oH9fPoZ2jJan5tZuv6Z4Kp7avtQ9bDfrdRntXtPeiMAZyGO', //12345
'guest' => '$2y$10$a.DMI5sRjAnvhb.8rFAXY.XPSEO/eatVb4qCMmTc2YcxTDKp9xMyC' //guest
);
$readonly_users = array(
'guest'
);
$exclude_items = array(
'.htaccess',
'.env',
'docker-compose.yml',
'Caddyfile',
'php-session.ini',
'config.php',
'.git',
'.DS_Store',
'..',
'.'
);
$online_viewer = false;
$default_timezone = 'Europe/Moscow';
После чего создаем директорию для хранения файлов и устанавливаем на нее нужные права:
mkdir -p /opt/tinyfm/data
chown -R 82:82 /opt/tinyfm/data
И сгенерируем хеши паролей реальным пользователям:
docker run --rm php:8.3-alpine php -r "echo password_hash('мой_пароль', PASSWORD_BCRYPT) . PHP_EOL;"
Обратите внимание, пользователи бывают двух типов, с правами загружать файлы и правами только на чтение.
Запускаем проект:
docker compose up -d -–build
И переходим в браузере по указанному адресу.Запустили новый канал про ИИ! 🚀
Наши ИИ агенты 24/7 мониторят соцсети и мировые СМИ, а команда отбирает лучшее — новости об ИИ, апдейты моделей, инсайды и мемы.
Подпишись и присылай свои темы и идеи форматов.
Подписывайтесь на @A1ntelligence!
Их нравы
На конференции Linux App Summit Себастьян Вик (Sebastian Wick), мэйнтейнер инструментария Flatpak, и Адриан Вовк (Adrian Vovk), создатель инсталлятора для GNOME OS и один из разработчиков systemd-homed и systemd-sysupdate, выступили с докладом о будущем системы самодостаточных пакетов Flatpak.
В докладе упоминалось намерение создать для нужд Flatpak новый процесс systemd-appd для управления правами приложений и вложенной изоляции. Важный нюанс: код ещё не написан, а поддержка пока только задумывалась.
Но тут «разверзлись хляби небесные» в социальной сети Fediverse началась волна агрессии. Разработчиков обвинили в «насаждении диктатуры», «предательстве портативности» и «союзничестве с Ландьюком». Критика сыпалась на этапе концепции, без анализа доклада. Аргументы «мы ещё даже код не написали» игнорировались.
Брайан Ландьюк (Bryan Lunduke) — известный технический блогер, яростный критик systemd и корпоративного влияния в Linux . В данном контексте обвинение в «союзничестве» с ним используется как токсичный ярлык и обвинение в намеренном вреде проекту ради идеологии.В результате Адриан Вовк заявил, что до начала этой токсичной кампании он искренне хотел найти элегантное решение для пользователей альтернативных init-систем (например, выделить appd в отдельный демон, как это сделали с elogind). Но после потока неконструктивной агрессии и обвинений у него пропала мотивация тратить личное время и силы на это:
Но, честно говоря, всё это обсуждение сейчас совершенно бессмысленно, пока мы не написали ни единой строчки кода. Если быть откровенным, до этой травли в Феди я планировал максимально тактично отнестись к сценарию использования без systemd. Но тут я увидел, как кто-то в открытую обвиняет нас в том, что мы «союзники Ландьюка». Так что, извините, но у меня больше нет ни малейшего желания тратить своё время на это дерьмо. Оно того не стоит.К чему это привело? Да к тому, что systemd теперь обязательной зависимостью Flatpak, альтернативные решения разработчики больше рассматривать не желают. И это не первый случай токсичного поведения меньшинств, которые потом искренне удивляются почему никто не хочет поддерживать их решения и вообще тратить на них время. Многие начинают склоняться к теориям заговора и козням корпораций. На самом деле проблема не в systemd vs openrc (или подставьте сюда все что хотите). Проблема в культуре дискуссии. Токсичное меньшинство, кричащее громче всех, создаёт иллюзию «общественного мнения». Но реальные мейнтейнеры видят: за громкими лозунгами стоит оголтелый фанатизм и догматическое отторжение инакомыслия.
Внимание выпускники и их родители!
Хотите получить 90+ баллов на ЕГЭ и 5 на ОГЭ? Не ждите последних моментов для подготовки, начните уже сейчас!
✅ Подготовка к ЕГЭ и ОГЭ от сертифицированных экспертов ФИПИ
✅ Поможем подготовиться к ЕГЭ без стресса
✅ Чёткий план подготовки к ЕГЭ для вашего ребёнка
✅ Гибкий онлайн-формат с понятными занятиями
✅ Бесплатные конспекты и сливы курсов в каналах преподавателей
Готовьтесь с онлайн-школой №1 по результатам учеников! Главные по стобалльникам в стране — подготовили 14% от всех.
Успейте забрать свою выгоду, пока программа активна!
Жмите "Узнать больше"
Узнать больше
#реклама 16+
О рекламодателе
Новый формат DEB822 для источников APT
Так уж пошло, что многие привычные вещи воспринимаются нами чем-то незыблемым, а попытка нарушить текущий ход вещей часто воспринимается в штыки. Новый формат источников APT - DEB822 не исключение, он появился начиная с выпуска Debian 13, а пользователи Ubuntu познакомились с ним немного раньше, начиная с Ubuntu 24.04. В данной статье мы подробно разберем новый формат, его основные отличия и преимущества перед привычным старым.
Заметка на эту тему уже была, теперь полноценная статья, которую мы достали из черновиков, вычитали, причесали и опубликовали.
Статья серьезно расширена и дополнена, кроме подробного разбора опций в ней есть новые разделы, которых не было в заметке.
✅ Читать: https://interface31.ru/post/novyj-format-deb822-dlya-istochnikov-apt/
Открываем выгодную Турцию
Планирование отпуска — это не 48 открытых вкладок и путаница. Это только одна, с Яндекс Путешествиями. Сервис составил интерактивные карты с местами, до которых обычно не доезжают, чтобы вы могли по-новому раскрыть страну.
Исследуйте Турцию и бронируйте отели с выгодой:
— TURKEY5K скинет 5000 ₽ при бронировании от 50 000 ₽
— TURKEY10K скинет 10 000 ₽ при бронировании от 100 000 ₽
Забронировать
#реклама
special.travel.yandex.ru
О рекламодателе
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
