Подтвердить что ты не робот

Как установить crystal-lang на rapsberry pi?

Когда я пытаюсь добавить его в источники согласно инструкции по установке debian, я получаю эту ошибку. Я предполагаю, что это означает, что для него нет пакетов для рук.

Не удалось найти https://dist.crystal-lang.org/apt/dists/crystal/InRelease Невозможно найти ожидаемую запись 'main/binary-armhf/Packages' в файле Release (Неверный sources.list запись или неверный файл)

Я предполагаю, что мне, вероятно, нужно установить его из источника. Как я буду делать это с помощью процессора? Когда я проверю его и запустил make, я получаю сообщение об ошибке:

У вас должен быть хрустальный исполняемый файл на вашем пути! Makefile: 113: рецепт для цели..build/crystal 'failed make: *** [.build/crystal] Ошибка 1

Приветствуются любые предложения.

4b9b3361

Ответ 1

EDIT: теперь есть полуофициальный репозиторий для кристалла на raspbian, посмотрите здесь: http://public.portalier.com/raspbian


Crystal не создает пакеты Debian для ARM, и вы правы в том, что вам нужно будет строить из источника.

Однако компилятор Crystal написан в Crystal. Это представляет собой очевидную проблему, как получить компилятор для сборки компилятора. Ответ кросс-компиляции: создание двоичного двоичного файла на настольном компьютере x86 и его копирование.

Здесь быстрый шаг за шагом, основанный на моей памяти последнего времени, который я скомпилировал:

  • Установите Crystal на настольный ПК x86 и проверьте, работает ли оно.
  • Установите все необходимые библиотеки на рабочий стол и малину Pi. Вам понадобится такая же версия LLVM на малине Pi и на рабочем столе. Это, наверное, самый сложный и длинный шаг. Вы можете установить llvm 3.9 из debian testing для ARM, см. этот пост stackoverflow за то, как для установки только LLVM из тестирования debian.
  • Проверьте источники с git на обоих компьютерах и запустите make deps.
  • Перекрестно компилируйте компилятор, запустив эту команду в корневом каталоге репозитория git:
    ./bin/crystal build src/compiler/crystal.cr --cross-compile --target arm-unknown-linux-gnueabihf --release -s -D without_openssl -D without_zlib
    This command will create a crystal.o file in your current directory, and also output a linker command (cc crystal.o -o crystal ...).
  • Скопируйте crystal.o в малину pi и запустите команду компоновщика. Обязательно отредактируйте абсолютный путь до llvm_ext.o, чтобы он указывал на проверку Crystal на вашем малине Pi, а не на вашем рабочем столе. Также убедитесь, что все ссылки на llvm-config в команде соответствуют правильной версии LLVM. Например, сменив /usr/local/bin/llvm-config на llvm-config-3.9 на Raspbian.
  • Запустите исполняемый файл crystal в вашем текущем каталоге (./crystal -v) и убедитесь, что он работает.
  • Убедитесь, что для параметра CRYSTAL_PATH для среды установлено значение lib:/path/to/crystal/source/checkout/src, чтобы компилятор мог найти стандартную библиотеку при компиляции приложений.