20 июля 2026

Конвертация Adobe Acrobat Reader EXE->MSI для установки в домене AD

Всем здарова.

Как известно, Adobe распространяет свой пакет Adobe Acrobat Reader DC в виде exe-файлов для установки - в виде веб-установщика и полного пакета установки. Но чтобы ставить в домене, программа должна быть в формате MSI. Веб-установщик не рассматриваем, а дальше речь только про полный.

Для примера я взял эту версию Adobe Acrobat Reader RU x64 2026.001.21662. Если вы попробуете распаковать её через 7-Zip или WinRAR, то внутри обнаружите массу интересного - в частности MSI-установщик AcroPro.msi, MSP-файл (патч для MSI-установщика), несколько CAB-архивов, Setup.ini и прочее. Если вы попытаетесь просто поставить MSI, то получите базовую версию 21.001.20135, что не есть хорошо с точки зрения безопасности, т.к. с того времени обнаружили много уязвимостей. Ибо Adobe распространяет так свои версии - базовая старая + очередной патч до последней. При простой установке из EXE вы всего этого не видите и получается магия =)

Как вариант, можно сделать AIP и Slipstreaming (административная точка установки и накладывание патча на неё) и ставить оттуда. Но вы получите набор из более чем 4 тысяч файлов и соответствующую скорость установки, особенно по сети. Чтобы убрать недоразумение такой кучи файлов их надо снова упаковать в архив и немного изменить оригинальный AcroPro.msi чтобы он начал понимать этот архив. Собственно для этого я с помощью Google AI и перебора его бредней создал рабочее решение по переупаковке EXE в MSI для установки последней версии.

10 апреля 2026

Установка AlmaLinux 10.1 с памятью 1GB

Как вы понимаете, если бы AlmaLinux 10 ставилась c таким объёмом оперативной памяти - не было бы этой статьи. Для меня оказалось дичью - в 21 веке требовать 2GB RAM только для установки, Debian/Gentoo дистрам хватает за глаза и 512MB.

Вобщем последовательность установки:

  1. Загрузиться сначала с любым Linux live-дистрибутивом (я использовал install от Gentoo)
  2. Разметить диск вручную через fdisk как необходимо. Обязательная часть - выделить место под обычный раздел объёмом не меньше 2GB (желательно в конце диска). Не делайте раздел типа 82 (Linux swap) на этом этапе установки, иначе установщик не даст пользоваться swap когда начнёт ставить систему (он отключает своп совсем). Если используется GPT - нужно создать первым разделом EFI-раздел размером 256-512M c файловой системой vfat, а потом все остальные.
  3. После разметки отформатируйте раздел, который будет под swap обычной файловой системой (mkfs.ext4, mkfs.btrfs и т.д.). Смонтируйте этот раздел и создайте там файл подкачки (подразумевается что это /dev/vda2, но у вас может быть другой):
    mkdir /mnt/swap
    mount /dev/vda2 /mnt/swap
    dd if=/dev/zero of=/mnt/swap/swapfile bs=1M count=1950
    mkswap /mnt/swap/swapfile
    chmod 0600 /mnt/swap/swapfile
  4. Остановите машину shutdown now и подключите ISO AlmaLinux-10.1-x86_64_v2-boot.iso, начните загрузку с него.
  5. На стадии grub-меню, выберите первый пункт (Install Almalinux) и нажмите e, перейдите на строку с kernel и в конце допишите inst.text - так мы укажем, что надо ставить в текстовом режиме (графика не запустится на 1GB RAM). Туда же можно добавить inst.lang=en_US.UTF-8 чтобы был английский язык, а не выбранный автоматически по GeoIP, а также ip=off чтобы отключить dhcp (сама сеть будет доступна).Также необходимо будет выбрать текстовый режим после полной загрузки, RDP-режим тоже не работает на таком объёме памяти.
  6. После загрузки первым делом выбираем пункт 5 для настройки диска куда будем ставить. Выберите пункт 4 (ручное указание точек монтирования). Укажите свободный раздел (который не swap) и укажите точку монтирования /. Или другую раскладку если у вас сложнее. Не трогайте раздел под swap и не указывайте у него точки монтирования!
  7. Переходим во вторую консоль (Alt+F2) и там монтируем раздел и включаем swap:
    mkdir /mnt/swap
    mount /dev/vda2 /mnt/swap
    swapon /mnt/swap/swapfile
  8. Переходим на основную консоль (Alt+F1) и продолжаем установку как обычно.
Таким способом у меня получилось поставить minimal-установку AlmaLinux с 1GB оперативной памяти. После загрузки установленной системы можно отформатировать этот раздел целиком под swap (mkswap /dev/vda2) и прописать его в fstab, чтобы не пропадало место =)

Возможно, у кого-то есть идеи получше как сделать сие - буду радь услышать их в комментариях =)

24 апреля 2023

Сканер и принтер Ricoh SP150SU в Gentoo

Задача: необходимо настроить сканер и принтер Ricoh SP150SU в Gentoo. Не всё так просто и очевидно, впрочем, нам не привыкать =)

01 декабря 2021

SMTP Relay Exchange и сохранение писем

Возникла задача - с вебсайта отправляются письма через протокол SMTP. Cоединение идёт с сервером Exchange с поднятым SMTP relay. Копии отосланных писем надо сохранить в почтовой папке "Отправленные" того же ящика. Подобную фишку пока реализовали только в Office365, а остальным надо сделать следующее:

15 августа 2021

Конвертация Maildir хранилища в Dovecot (LAYOUT=fs:UTF-8)

Если вы используете dovecot для предоставления IMAP и клиентов с Outlook IMAP, то есть проблема - используя стандарт хранения файлов по-умолчанию

mail_location = maildir:/var/vmail/%d/%n

получим массу папок в UTF-7 названиях, плюс подпапки будут суммироваться в одно большое имя (пользователи любят собирать письма во Входящих по подпапкам):

.INBOX.&BBEEQwRFBDMEMAQ7BEIENQRABDgETw-

Чтобы сделать хранение подпапок как подпапок на диске (через LAYOUT=fs), плюс избавиться от малопонятного UTF-7 и сделать нативный UTF-8:

INBOX/Бухгалтерия

необходимо будет сначала временно в команде конвертации doveadm backup, а потом, после полной конвертации уже и в конфигурации dovecot изменить формат хранения на:

mail_location = maildir:/var/vmail/%d/%n:LAYOUT=fs:UTF-8

Сначала надо убедиться, что задан separator по-умолчанию в вашей конфигурации. doveconf namespaces покажет их, если separator не задан, то зададим его равным "." (это значение по-умолчанию):

namespace inbox {
 ..
 separator = "."
 ..
}


Возможно у вас уже есть namespace {} - тогда задать надо там. После полной конвертации его надо изменить на "/".

Собственно, сама конвертация происходит в виде копирования в новое местоположение файлов с новой системой названий. Команда для конвертации (из под root):

doveadm -D -o "mail_location = maildir:/var/vmail/%d/%n:LAYOUT=fs:UTF-8" backup -u myuser@mydomain.tld maildir:/var/vmail/domain.tld/myuser2:LAYOUT=fs:UTF-8

Далее удаляем старую папку myuser и переименовываем новую myuser2 в имя старой myuser.

Самое главное - везде в конфигурации Dovecot заменить значение mail_location и separator на новое значение. Иначе будет создаваться папки со старыми именами =)

29 апреля 2020

Rocket Chat Livechat/Omnichannel i18n RU перевод

В версии 3.1.1 (и в предыдущих) чудного чат-сервера Rocket Chat - есть опция внедрения виджета LiveChat на свои сайты с привязкой к каналам. Однако, русская часть сообщений переведена не полностью и выглядит коряво =)

Если ставили из исходников по руководству выше - достаточно заменить 2 файла:
/opt/Rocket.Chat/programs/web.browser/app/livechat/i18n.ru.chunk.b3bc1.js
/opt/Rocket.Chat/programs/web.browser.legacy/app/livechat/i18n.ru.chunk.b3bc1.js
этим файлом и форсировать полную перезагрузку сайта в браузере, чтобы обновился этот js-файл.

Как поправить в Snap-версии не нашёл =)

Чтобы собрать этот файл самому - качаем исходники компоненты LiveChat, правим нужный файл, билдим через yarn командой yarn build