Создание программ «кросс-системного Linux» с другим интерпретатором libc / musl

Я бы попробовал

  1. извлечь жесткий диск,
  2. подключить к другому хосту, на котором работают клавиатура и экран
  3. установить Linux (Ubuntu в в вашем случае)
  4. установить сервер openssh
  5. подключить диск к исходному хосту
  6. включить (и надеяться)

Есть небольшая проблема: Включение исходного хоста будет включать перенастройку оборудования, вам может потребоваться подтверждение с клавиатуры.

Кстати, вы можете попробовать Archlinux, где слепая установка хорошо документирована (по крайней мере, на rasperry pi).

1
14.03.2018, 16:50
1 ответ

Есть три способа справиться с такой проблемой.

  1. Вы можете построить nixстатически; тогда ему не понадобится динамический компоновщик -во время выполнения, и он будет работать практически везде. (Это также прекрасно решает проблемы совместимости библиотек.)

  2. Вы можете собрать nixнесколько раз, по одному разу для каждой целевой libc — реально, на Linux, GNU libc и musl(может быть также и dietlibc ). Это даст вам двоичные файлы, которые вы можете использовать по мере необходимости в зависимости от libc целевой среды. Не знаю насчет Alpine Linux, но это возможно например на Debian; вы должны собрать с помощью компилятора по умолчанию для сборки с GNU libc, установить пакет musl-devи собрать с помощью musl-gccдля целевого musl.

  3. Вы можете указать зависимости любого бинарного файла, который вы собираетесь собрать, и установить его в целевой среде. Например, двоичный файл на основе musl -, построенный на Alpine, будет легче запускать на производной от Debian, если вы установите туда пакет musl.

2
27.01.2020, 23:32

Теги

Похожие вопросы