Arduino IDE 1.8.13 не запустится должным образом

Недавно я пытался установить Arduino IDE 1.8.13, и я столкнулся с соответствующей проблемой. При попытке запустить Arduino IDE с командой ./arduino он показывает соответствующую ошибку:

./arduino: line 35: /home/wiktor/Downloads/arduino-1.8.13/java/bin/java: No such file or directory

Я проверил, и файл java действительно существует. Я использую 32-битную версию Arduino IDE и 32-битную версию Linux Alpine 3.13.3.

Спасибо за все ответы

, 👍1


1 ответ


Лучший ответ:

1

Примечание: Ниже техник 274 (оригинальный плакат) прокомментировал:

В конце концов он заработал, после того, как последовал alpinelinux wiki и установил IDE с помощью flatpak.


Часть проблемы заключается в том, насколько запутанным является сообщение. Ни один такой файл или каталог на самом деле не относится к файлу java. Это относится к ld-linux.so интерпретатор, указанный в файле elf.

Если вы запустите команду file в исполняемом файле Java, вы увидите вывод, который выглядит следующим образом:

./java/bin/java: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.9, not stripped

Если вы ищете /lib/ld-linux.so.2, вы обнаружите, что у вас его нет, и это файл, на который он жалуется.

Alpine Linux , по-видимому, использует Musl, и двоичные файлы java были скомпилированы для glibc, что нормально для настольного Linux. На типичной настольной системе Linux, для которой была скомпилирована java, поставляемая с IDE Arduino, все виды исполняемых файлов используют ld-linux.so.2. На вашей системе Alpine вы обнаружите, что они ссылаются на /lib/ld-musl-i386.so.1 вместо этого. С этой точки зрения, это больше проблема Linux, чем Arduino, но я подумал, что это может также иметь какой-то ответ, чтобы указать людям на соответствующие ресурсы:

  • https://wiki.alpinelinux.org/wiki/Running_glibc_programs
  • https://github.com/sgerrand/alpine-pkg-glibc

Возможно, вам будет легче заменить интерпретатор Java, но этого будет недостаточно, потому что двоичные файлы Avrdude и GCC также будут ожидать ld-linux.so.2.

В конце концов, может быть проще просто не использовать Alpine Linux.

,

В конце концов он заработал, после того как проследил за вики alpinelinux и установил IDE с помощью flatpak., @the technician 274