#python #linux #python-3.x
#python #linux #python-3.x
Вопрос:
chroot --userspec 1000:1000 /var/lib/broot/sugar-build-3xlQJ /usr/bin/env -i
PATH=/bin: /usr/bin:/usr/sbin BROOT=yes XAUTHORITY=/home/broot/.Xauthority
DISPLAY=:0 HOME=/home/broot LANG=C TERM=xterm-256color
/bin/bash -lc "/home/broot/sugar-build/osbuild build"
кто-нибудь может объяснить приведенную выше команду, потому что ошибка, похоже, заключается только в этом. Я знаю, что в основном делает chroot, поэтому проблема, похоже, в том, что модуль python3.3 не находится в тюрьме chroot. итак, если это проблема, как я могу получить модуль python3.3 внутри тюрьмы chroot.
Кстати, я переношу некоторые модули с python2.7 на python3.3, и приведенная выше команда взята из этих модулей, и она работала в python2.7.
Комментарии:
1. Находятся ли файлы в пути python3.3? Хорошее место для их размещения / проверки находится в папке site-packages .
2. @MrAlias Какие файлы?
3. Изначально мне было интересно, какие модули вы пытаетесь перенести, но по вашему ответу мне теперь интересно, установлен ли у вас python3.3 под новым chroot?
4. я думаю, что это проблема. У меня нет python3.3, установленного в новом chroot. Как я могу это сделать?
5. Я предполагаю, что вы используете Mac, поэтому сначала позвольте мне сказать «удачи». Вероятно, вам нужно выполнить chroot в корневой каталог (не пытаясь запустить скрипт), а затем установить python3.3
Ответ №1:
Когда вы создаете среду chroot, все, что вам нужно, должно быть скопировано из вашей установки.
Допустим, ваша среда chroot запускается в /var/chroot .
Допустим, далее, что вы хотите иметь возможность запускать «ls» (у вас нет, если вам никогда не нужно иметь возможность запускать «ls», но допустим, у вас есть). Сначала вы должны скопировать /bin/ls в /var/chroot/bin/ls . Теперь для запуска «/bin/ls» требуется несколько файлов библиотеки.
Допустим, вы обнаружили, что один из них называется /lib64/libcap.so . Это означает, что вам нужно скопировать /lib/libcap.so в /var/chroot/lib64/libcap.так что в противном случае ваш /var/chroot/bin/ls НЕ будет запущен. Вы делаете это для всех библиотек, которые требуются «ls».
После всего, что сделано, вы можете выполнить chroot в /var/chroot, и, вуаля, ваш «ls» теперь выполняется.
Та же идея с любыми другими командами, будь то системные команды, такие как «ls», или компиляторы / интерпретаторы, такие как python.
Комментарии:
1. эй, я также думаю, что именно так работает chroot, но что меня смущает, так это то, что команда, которую я упомянул в своем посте, является единственной командой, связанной с chroot, и они явно не установили python2.7 или что-то еще, но он все еще мог запускать файлы python2.7, но теперь он не может запустите файлы python3.3. я что-то здесь упускаю?