При запуске контейнера Alpine 3.20 команда make жаловалась на «Операция не разрешена», хотя я вошел в систему как root.
Искал на форумах подобную проблему. В среде RHEL7 с ограниченными правами для обновления версий альтернативы Docker — Podman. Между тем, обновление до службы Docker/Podman — не вариант для людей. Вместо этого ищите другой вариант изменения/обновления вещей в Alpine Container.
/tmp # docker-php-ext-install gd /bin/sh /usr/src/php/ext/gd/libtool --tag=CC --mode=компилировать cc -I. -I/usr/src/php/ext/gd -I/usr/src/php/ext/gd/include -I/usr/src/php/ext/gd/main -I/usr/src/php/ext /gd -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I /usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/usr/include/libpng16 -I/usr/include/webp -I/usr/include/freetype2 -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -Wno-strict-prototypes -I/usr /src/php/ext/gd/libgd -DZEND_COMPILE_DL_EXT=1 -c /usr/src/php/ext/gd/gd.c -o gd.lo -MMD -MF gd.dep -MT gd.lo make: / bin/sh: Операция не разрешена, марка: *** [Makefile:213: gd.lo] Ошибка 127
Не знаю, можно ли заменить make, поскольку он находится в основной папке /usr/bin/.
Путь к /ust/bin/make — это просто символическая ссылка на gmake. Удалите символическую ссылку, а затем создайте новую ссылку с установленным путем make. Должен сделать работу.
Могу ли я попробовать alias make = "bmake"
, не удаляя символическую ссылку?
Предполагая вызов команды make из внешнего скрипта/программы, можно изменить базовый путь на make.
Можете ли вы подсказать, как установить bmake
в альпийской среде?
Попробуйте «apk add —upgrade gcc libc-dev bmake».
Отлично, кажется, работает так, как ожидалось. Вот что я пробовал: /tmp # apk add --upgrade gcc libc-dev bmake
/tmp # mv /usr/bin/make /usr/bin/make.bak
/tmp # ln -s /usr/bin/bmake /usr/bin/make
Я попробовал команду установки расширения PHP, например /tmp # docker-php-ext-install gd
, которая использует make
для компиляции, а теперь перешел к использованию bamke
скрытно. Кажется, пока все в порядке. Очень ценю!
Пытаться
apk add —upgrade gcc libc-dev bmake
.
Замените /usr/bin/make
на /usr/bin/bmake
.
Просто отметил это как принятый ответ. Большое спасибо!
Попробуйте использовать bmake вместо make, это более стабильно, чем make в Alpine.