CC
в вашем makefile
— это просто переменная. Вы можете указать любой компилятор или исполняемый файл в вашей системе.
Найдите прямой путь к вашему "новому" gcc и включите его CC={Path}
и компиляция должна быть в порядке.
Позвольте мне поделиться с вами собственным опытом, который я приобрел за эти дни. Я не эксперт. Я не могу предложить, что вам делать, но могу попытаться объяснить, что происходит, когда вы запускаете podman с --privileged
и :z
. Вероятно, вы уже знали эти.
Я предполагаю, что вы используете podman
без корней, то есть podman -v
, а не sudo podman -v
. Я также предполагаю, что ~/.secrets/clodflare
принадлежит вам с UID 1000
.
В вашем случае (по крайней мере )две проблемы с разрешениями, а именно, традиционные разрешения Unix(0600
или-rw-------
)и SELinux (container_file_t
, user_home_t:
, fusefs_t
и т. д. ).
Разрешение UNIX
root
. Поэтому:Если процесс в контейнере запускается root
, то на хосте он запускается вами. Таким образом, у него есть разрешение rw-
на эту папку/файл. Я думаю, это ваш случай. Это не имеет ничего общего ни с --privileged
, ни с :z
.
Если процесс в контейнере запускается другим пользователем, скажем, с UID 1234
, то на хосте он запускается пользователем с UID101233
(по умолчанию, в зависимости от настройки в /etc/subid
). Поэтому у него есть только разрешение ---
на этот файл. Если вы хотите изменить владельца на 1234
в контейнере (или 101233
на хосте ), вы можете запустить, например, podman unshare chown -R 1234:1234 <path>
или sudo chown -R 101234:101234 <path>
. Однако я не думаю, что это относится к вам.
Если на хосте файл вам не принадлежит, то в контейнере он будет принадлежать кому-то другому в соответствии с настройкой в /etc/subid
.
Вы можете найти дополнительную информацию по этой теме, погуглив podman namespace
.
SELinux
--privileged
, вы отключаете разделение SELinux (и многое другое ). Но он не будет переименовывать файл/папку. Каждый раз, когда вы запускаете podman, вы должны запускать его как podman -v <host-path>:<container-path> --previleged <image>
. :z
,вы позволяете podman переименовывать файл/папку. Вам нужно сделать это только один раз . Вы можете проверить разницу между до и после, перечислив файл/папку через ls -Z
или ls -Zd
. Как только файл или папка будут правильно переименованы, в следующий раз вы можете просто запустить podman -v <host-path>:<container-path> <image>
, без :z
и --privileged
. podman run
, пояснения к --privileged
, -v
, -security-opt
.