LINUX.ORG.RU

Как на runit поднять сервис snap?

 ,


0

1

На Android 12 с помощью Termux поставил Xubuntu 20.04. Запуск гостевой ОС происходит также с помощью Termux. Понятно, что никакой нормальной системы инициализации быть не может, поэтому в гостевой ОC ее просто нет. И вместе с ней нет всех сервисов, которые инициализируются при старте ОС, в том числе нет snap. А без snap много пакетов просто не ставится.

Пакет snapd устанавливается успешно. Хочется с помощью runit запустить сервис snap, для чего нужен скрипт. В инете подобный скрипт не нашел. Может есть какая- то принципиальная невозможность запустить snap с помощью runit?

Если все же это реализуемо, то может кто- то нубу сбросить этот скрипт?



Последнее исправление: SemenKrasiviy (всего исправлений: 2)

Я вижу как минимум 2 потенциальные проблемы:

  • Termux это контейнер, поэтому ядро там от хоста, причем урезанное по функциям. Я не уверен, что snap, как тоже контейнер, в принципе можно запустить в подобном окружении.
  • Termux как контейнер наследует архитектуру хоста, скорее всего какой-нибудь ARM. Так что snap пакеты не под эту архитектуру не будут работать, а чаще всего он применяется на x86_amd64.

Честно говоря будет проще скомпилировать из исходников то ПО, что ты хочешь ставить из snap, или поставить его через обычный пакетный менеджер.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 2)
Ответ на: комментарий от Vsevolod-linuxoid

Архитектура действительно ARM64, но я думаю система как и при работу с обычными репозиториями это учитывает и не будет устанавливаеть что- то под другую архитектуру.

SemenKrasiviy
() автор топика
Ответ на: комментарий от SemenKrasiviy

Да, только вот нужное тебе ПО в snap под ARM64 собрано или нет? И меня больше смущает, что ты пытаешься запустить контейнер с изоляцией от основной системы внутри контейнера с изоляцией от основной системы. Серьезно, какое именно ПО тебе нужно?

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от SemenKrasiviy

Зато есть исходный код, можешь попробовать собрать.

И я сильно подозреваю, что под ARM в snap его тоже не собрали, проверь: https://forum.snapcraft.io/t/list-available-architectures-versions-through-the-cli/782 — для использования snapcraft нужен аккаунт, а у меня его нет.

И ничуть не удивлюсь, если окажется, что просто собрать под ARM это в принципе не выйдет, а нужно портировать.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Повторюсь, что я уже инсталил Brackets на «обычной» Ubuntu. И да, зарегался и нашел этот пакет среди снапов.

Значит, исходя из их рекламы на главной странице, («One build for all Linux and IoT» и рядом в том числе нарисована Raspberry Pi) он есть и на ARM64.

Так что желанный пирожок продолжает меня манить…

SemenKrasiviy
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Спасибо! Я правильно понимаю, что если найду эмулятор (типа VirtualBox) для Android, то вполне возможно запустить полноценную ОС со всеми сервисами (в том числе со snap)?

SemenKrasiviy
() автор топика

А без snap много пакетов просто не ставится.

Решение очевидное: не использовать дистрибутивы, где без snap много пакетов не просто ставится.

/thread

xenith
()
Ответ на: комментарий от SemenKrasiviy

И Snap, и Flatpak просто берут последний релиз от Adobe и перепаковывают его:

https://github.com/snapcrafters/brackets/blob/master/snap/snapcraft.yaml#L45 https://github.com/flathub/io.brackets.Brackets/blob/master/io.brackets.Brackets.json#L44

Проще было бы взять deb напрямую и установить, а если бы не ставился из-за требования старых зависимостей, можно было бы вручную распаковать и подсунуть ему нужные библиотеки. Эффект был бы тот же.

Но сделать это нельзя, потому что Adobe собирал Brackets только под x86 и x86_64.

FYI, о будущем community-форка: https://github.com/brackets-cont/brackets/issues/112

Можно пробовать собирать самому.

xenith
()