vitus_wagner: My photo 2005 (Default)

До выхода ubuntu 24.04 еще два дня, а у нас уже есть первый сервер с этой ОС. Потому что ставить interim release mantic minotaur на сервер как-то некошерно. А поставить туда debian не получается, так как архитектура riscv64 пока отсутствует даже в testing - есть только в sid-е. И у альта - только в Sisyphus. Поэтому зоопарк разрастается по следующему принципу - x86_64 и aarch64 - debian, e2k - alt, riscv - ubuntu. Хотя целевая ОС там конечно alt. Но это еще пока мы портируем наш софт, глядишь у альта в 11 платформе уже эта арихтектура будет.

vitus_wagner: My photo 2005 (Default)

Как известно, когда объявили конкурс на лучшее средство отвратить купальщиков от купания в акулоопасном месте, наиболее эффекивным оказался плакат "Первая помощь при укусе акулы".

Вот у меня недавно был аналогичный случай: представители одного партнера поинтересовались "а как запустить altlinux в lxc-контейнере на ОС Эльбрус". Ну я честно поднял записи в конфлюэнсе трехлетней давности (сделанные до того как мы снесли со всех железок ОС Эльбрус и поставили туда альт) и стал объяснять: вот этот сервис включить, вот этот отключить, вот этот скрипт обработать напильником. А образ корневой файловой системы попросите у Базальта, мне же они дали. "Понятно, - сказали партнеры. - берем другой диск и ставим альт на железо".

Вообще как показывает практика даже упорному дебианщику вроде меня на эльбрусах альт удобнее всех остальных дистрибутивов, даже астры (астра на этой платформе слишком сильно отстает от debian, а alt на всех платформах синхронен)

vitus_wagner: My photo 2005 (Default)

Вот как можно так настроить веб-сервер, чтобы пакетный менеджер оттуда rpm-ки скачивал с ошибками, а wget и браузер - нормально?

Оказывается, можно. Если отдавать статический файл с диска с Transfer-Encoding: chunked. Как будто это не статический файл, выложенный три месяца назад (и ему надо отдавать Last-Modified, Content-Length, и ETag, а желательно еще и предлагать Accept-Ranges) а динамичски генерируемая страница. (отдельная песня что там еще заглоовка Content-Type не было. Тот кто начинал заниматься веб-программированием в эпоху CGI и конкурирующих семи русских кодировок при виде http-respоnse в которой отсутствует нафиг заголовок Content-Type (даже если там по смыслу application/octet-stream), но зато присуствует Content- Disposition: attachment впадает в ступор.

Авторам apt-rpm тоже не пришло в голову потестировать свое поделие на совместимость с Transfer-Encoding: chunked. А у них собственная гордость, своя библиотека для работы с http которая говорят на целых несколько процентов быстрее curl (это когда это скорость скачивания по http лимитировала клиентская библиотека а не канал где-то посредине?)

А у меня первая мысль когда приходит баг репорт, что-де пакеты скачиваются с не теми контрольными суммами? Что сервер кто-то ломанул и в rpm-ки трояна завернул. И только после того как я сравнил sha256 суммы этих rpm-ок с архивом стало понятно что дело в админах сервера. Нет, современное поколение сисадминов выросшее в эпоху динамически генерируемых страниц - это что-то.

Кстати, почему-то дебиановский apt, yum и dnf скушали chunked и не подавились. Возможно потому что последние два - на питоне написаны и используют его стандартные библиотеки для скачивания файлов.

vitus_wagner: My photo 2005 (Default)

Вчера в ночи вернулись из Бужаниново в Москву. А то в холода там жить как-то не очень удобно. Почему в ночи? Потому что у ребенка онлайн-школа и в 9 вечера была беседа с наставником. Вот после этой встречи и поехали. До этого целый день не выпускали кошку из дома (благо лоток стоит). В конце концов она сныкалась под кресло и мы было решили, что ее упустили. Уже планировали отложить отъезд на утро, когда она с охоты придет.

Но Артур ее углядел. И в полодиннадцатого вечером мы таки уехали.

На прошлой неделе я отремонтировал два старых ноутбука. Нашел на Савеловском рынке сервис, специалиизрующися по Thikpad-ам (2E14), там мне починили Ethernet и динамики на Thinkpad X201i, за которые не брался дядя Володя. На Thinkpad E14 надо было просто NVME диск поменять. Поменял 256Гб на 512 и даже нашел бэкап и восстановился с него. Правда, выяснилось что протух сертификат openvpn. Моей же собственной. Перегенерил я его только сегодня. уже в Москве. Потому что я мог бы конечно взять бэкап московского десктопа, достать оттуда свой УЦ и создать новый сертификат. Но зачем, если все равно на следующий день в Москву ехать и эту машину включать.

А ребенков Dell сдох с концами. починить его на совеловском рынке (F1) не смогли. И долго все никак не могли отдать непочиненный. Потому что я в Москву наезжал наездами и ждать два часа не было времени.

Поэтому получил его только со второго приезда, вместе с починенными Thinkpad-ами. Но неработающий.

Так что купил ребенку Asus такой же, как у Ирины. А он в порыве патриотизма решил вместо винды поставить туда Alt Linux. И даже поставил. Но тут же из-за торопливости сломал. Будет сегодня переставлять.

vitus_wagner: My photo 2005 (Default)
Решил прикрутить ко всем своим lxc-контейнерам (а их у меня на моей рабочей машине 30 штук) bind-mounted /home.
Для этой цели пришлось, естественно, синхронизироват uid-ы пользователей между всеми контейнерами.
И тут вдруг внезапно altlinux-ы 7 и 8 перестали меня пускать. shell request failed говорят. А внутри в логи пишут "altlinux-7 sshd[2758]: error: do_exec_pty: fork: Resource temporarily unavailable"
Почему-то вот ресурса числа процессов на юзера, которого им вполне хватало, хватать перестало. То ли там ошибка в cgroups и они считают процессы на хосте и других контейнерах, то ли не знаю что.
Вылечилось увеличением лимитов на nproc в /etc/security/limits.d/50-defaults.conf раза в четыре.
vitus_wagner: My photo 2005 (Default)
Нетривиальная задача - собрать под Debian 10 (выпущенный в этом году) rpm-пакет так, чтобы он ставился на Alt Linux 8 (выпущенный пару лет назад). Вот под RHEL 6 (выпущенный уже 10 лет как) - проблем нет. Там проблемы начинаются в RHEL 5, который давно мертв и закопан.


Ключевая проблема - надо сделать, чтобы оно использовало совместимые (т.е. устаревшие) алгоримты сжатия и хэширования. Для чего в spec-файле нужно добавить два макроса.
%define _binary_payload w9.gzdio
%define _binary_filedigest_algorithm 1
vitus_wagner: My photo 2005 (Default)
Да, это напоминает "почему мой эмулятор 8-битной игровой коноли для 16-битной DOS звпущенный в 32-битной виртуальной машине с Windows работающей на 64-битом хосте не издает звуков?"

Но иногда приходится.

Потому что есть логин на машинку с относительно древним RHEL (7.5) и на ней хочется собирать пакеты для кучи разных дистрибутивов. Потому что у этой машинке архитектура ppc64le. Такую за копейки на aliexpress не купишь.
(впрочем, arm64 который покупается за копейки на aliexpress, для сборки пакетов тоже пригоден не слишком. Хотя надо попробовать укупить там что-то побыстрее RaspBerry PI 3B)

Так вот, разводить там полнценные контейнеры там не хочется. Возни много, а толку мало. Для компиляции программ той степени изоляции, которую обеспечивает банальный chroot вполне достаточно. Тем более если пакеты мы будем компилировать в хэшере. который сам по себе именно такой уровень изоляции от хост-системы использует.

К сожалению, вот просто так взять и поставить хэшер на RHEL - мероприятие, не слишком простое и очевидное.

А вот schroot есть в EPEL.

Как оказалось, делать это следует следующим способом

  1. Качаем образ минимальной системы требуемой архитектуры с альта.
  2. Распаковываем ее в /srv/chroot/altlinux9
  3. Пишем близкий к тривиальному конфиг schroot в /etc/schroot/chroot.d
    [altlinux9]
    descriotion=AltLinux 9 with hasher
    type=directory
    directory=/srv/chroot/altlinux9
    users=vitus
    


  4. Копируем в chroot /etc/sudoers
  5. Заходим в chroot рутом (sudo schroot -c altlinux8)
    и делаем apt-get install sudo, потому что в минимальной системе sudo нет
  6. Далее, из под рута же выполняем инструкцию
  7. Выходим из chroot и копируем из chroot-а /etc/passwd, /etc/group и /etc/shadow в хост-систему
    (потому что schroot их копирует из хост-системы при каждом входе. Это можно отключить но не нужно. так как простейший chroot свойства юзера, включая членство в группе наследует из хост-системы.)
  8. Выходим из хост-системы и заходим обратно, после чего заходим в chroot уже юзером и выполняем ту часть инструкции, которая из-под юзера.

Ура, можно пересобирать пакеты.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

January 2026

S M T W T F S
     1 2 3
45678910
11121314151617
18192021222324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 3rd, 2026 09:47 pm
Powered by Dreamwidth Studios