Исполнил давнюю-предавнюю хотелку, купил себе Network Attached Storage. Мечтал об этом ещё с Самары, но там у меня был огромный системник, забитый винтами, и оно было как-то не надо. В Москве уже обходился парой USB-винтов, с которыми было не очень удобно, но терпимо. Потом написал примочку для прозрачной работы с мейловским облаком - и стало совсем норм. Но тут винты стали подыхать, интернет скоро будет по талонам, а я, наконец, могу без ущерба для бюджета потратить штуку баксов. Примерно во столько обошёлся мне NAS Asustor AS3104T и 4x4Tb винчестера к нему.
Устройство великолепное, не нарадуюсь. Удобное, продуманное, функциональное. Есть вообще всё, что надо. Больше того, это полноценная x86_64 машинка, а её ОС - кастомный Linux aka Asustor ADM. Поле для экспериментов неисчерпаемое.
По результатам копания в кишках операционки выяснилось вот что: - Корневой раздел монтируется в памяти, после ребута всё, соответственно сбрасывается. - /home и /root ссылаются на первый дисковый раздел aka /volume1 (чтобы локальные настройки не сбрасывались). - Там же, в /volume1, лежит кучка каталогов, используемых системой, самый интересный из которых - /volume1/.@plugins. По сути, это ещё один системный корень, со своими /bin и /lib. Больше того в AppCentral этого каталога лежат "приложения", установленные из системного магазина. С ними оооочень интересно: каждое приложение тащит с собой все зависимости и конфиги, располагая их в собственных подкаталогах (т.е. у каждой приложухи есть собственный псевдосистемный раздел). - Соответственно, приложение может быть вообще без бинарников, например приложуха media-pack - набор драйверов, и тащит с собой только /drivers. И система каждый такой подкаталог принимает как собственный. - ssh-доступ настраивается, вход по умолчанию - admin с установленным в системе паролем, но можно ходить под root с тем же паролем. - Шеллом там, увы, busybox. Это плохо. Но собран он с минимальной поддержкой rpm - это хорошо. Пакеты от fedora встают, как родные, но ограничений масса: нет пакетной установки, нет проверки зависимостей. Например, чтобы поставить midnight commander, нужно сначала поставить его, а потом ручками доставлять каждую требуемую им библиотеку. Их, к счастью, штук пять, так что труд не особо великий. Как написано выше - после перезагрузки всё слетит, поэтому можно скопировать /bin/mc => /volume1/.@plugins/bin/mc, и поставленные библиотеки тем же способом в /lib64. Это будет работать, но, к сожалению, /volume1/.@plugins/usr отсутствует, поэтому конфиги из /usr/share/mc можно перетащить в /volume1/.@root/.local/share/mc, они подсасываются как пользовательские.
И вот на этом-то месте начинается интересное. У нас есть абсолютно нормальный linux - но без пакетного менеджера. Окей, заменим бизибоксовский rpm на нормальный, для начала найдём пакет в ftp://195.220.108.108/linux/fedora/linux/releases/25/Everything/x86_64/os/Packages, и поставим его:
затем придётся удовлетворить кучку зависимостей, на которые будет ругаться rpm: [список зависимостей]rpm-libs-4.13.0-0.rc1.46.fc25.x86_64.rpm rpmconf-1.0.18-2.fc25.noarch.rpm rpmconf-base-1.0.18-2.fc25.noarch.rpm rpmdepsize-1.0-18.fc24.x86_64.rpm rpm-4.13.0-0.rc1.46.fc25.x86_64.rpm libdb-5.3.28-14.fc24.x86_64.rpm bzip2-libs-1.0.6-20.fc24.x86_64.rpm elfutils-libelf-0.167-2.fc25.x86_64.rpm lua-libs-5.3.3-3.fc25.x86_64.rpm
(Чтобы снова использовать bysybox rpm вместо нерабочего установленного, делаем mv /bin/rpm /bin/rpm.bak, затем ln -s /bin/busybox /bin/rpm, или просто сначала ставим зависимости, а основной пакет после. Потом возвращаем rpm обратно).
Всё, в системе есть нормальный rpm. Только я им не очень умею пользоваться, потому что последний раз пользовался им, гхм, студентом ещё будучи. Я не знаю, как указать ему удалённый ftp-каталог (да или хотя бы локальный) в качестве репозитория, я не знаю, умеет ли rpm сам решать зависимости. Гуглинг натыкает меня на умеющий в это yum, который есть надстройка над rpm, и с которым я знаком чуть лучше.
Попытка поставить yum: rpm -ivh yum-3.4.3-510.fc25.noarch.rpm
ругнётся на отсутствующие зависимости: [список зависимостей]/bin/sh is needed by yum-3.4.3-510.fc25.noarch /usr/bin/python is needed by yum-3.4.3-510.fc25.noarch cpio is needed by yum-3.4.3-510.fc25.noarch diffutils is needed by yum-3.4.3-510.fc25.noarch dnf-yum is needed by yum-3.4.3-510.fc25.noarch pygpgme is needed by yum-3.4.3-510.fc25.noarch pyliblzma is needed by yum-3.4.3-510.fc25.noarch python >= 2.4 is needed by yum-3.4.3-510.fc25.noarch python(abi) = 2.7 is needed by yum-3.4.3-510.fc25.noarch python-iniparse is needed by yum-3.4.3-510.fc25.noarch python-sqlite is needed by yum-3.4.3-510.fc25.noarch python-urlgrabber >= 3.9.0-8 is needed by yum-3.4.3-510.fc25.noarch pyxattr is needed by yum-3.4.3-510.fc25.noarch rpm >= 0:4.4.2 is needed by yum-3.4.3-510.fc25.noarch rpm-python is needed by yum-3.4.3-510.fc25.noarch yum-metadata-parser >= 1.1.0 is needed by yum-3.4.3-510.fc25.noarch
Установка каждого из этих пакетов тянет за собой другие зависимости, так что получается очень долго и нудно, если всё это ставить руками. Господа линуксоиды, я не хочу идти на лор, помогите, в какую сторону копать?