sudo
нормальное приложение с suid укусило. Это означает для использования sudo
это должно быть установлено в системе. Не все системы Linux имеют sudo
установленный на значение по умолчанию как, например, Debian.
Большинство систем Android предназначено для конечных пользователей, кто не должен знать внутренности Android (т.е. каждого Android выполнения приложений при своем собственном пользователе), таким образом, нет никакой потребности обеспечить интерактивный способ для конечного пользователя выполнить команду как системного администратора.
В целом можно использовать su
вместо sudo
для выполнения команды как другой пользователь, но необходимо знать учетные данные для целевого пользователя для su
(для sudo
необходимо знать учетные данные пользователя, выполняющего команду),
Случитесь каждый относительно легок, по крайней мере, для некоторых программ. Большинство исходных пакетов включает a configure
сценарий, который проверяет на доступность необходимых библиотек. Эти сценарии будут обычно иметь опции указать пути поиска. Например, --lib-prefix
. Тем путем Вы не должны даже изменять Make-файл сами. Теперь или, или не это будет работать, будет зависеть от того, насколько сложный зависимости, но это стоит попытки.
Для опции 2 Вы имеете chroot
программа:
chroot - run command or interactive shell with special root directory
chroot
нуждается в определенных файлах и каталогах для присутствования. Детали будут зависеть от того, что точно необходимо сделать (например, сделать Вам нужно /dev
? Вам нужно /proc
?). Можно получить минимальное chroot
среда как это (как корень):
mkdir foo
cp -r /bin /lib /lib64 foo/
chroot foo
Последняя команда переместит Вас в каталог foo
и выполненный Ваша обработка оболочки по умолчанию foo
как /
. Процедура, которую я обрисовал в общих чертах, является упрощением. Вам не нужно все в /lib
например. Вам также, вероятно, будет нужно больше каталогов для присутствования в зависимости от того, что Вы хотите сделать. Наконец, можно также использовать mount bind
связать каталоги в chroot
среда, но не, если Вы хотите, чтобы это было абсолютно независимо от Вашей реальной ОС.
Простой способ создать такую детскую площадку состоит в том, чтобы взять небольшой раздел и установить минимальную систему на тот раздел. Можно затем просто сделать chroot
как так (всегда как корень):
mount /dev/sda2 foo/
chroot foo/
Очевидно, изменение sda2
на том, какой бы ни раздел Вы установили свою минимальную систему на. Для получения дополнительной информации см. эти ссылки:
ответ terdon является пятном на.
Другой, несколько более включенный но более длительный подход, должен был бы на самом деле создать виртуальную среду (virtualbox, мое движение к здесь.) Создают новую виртуальную машину с основной / стандартной версией ОС, Вы используете, сохраняете состояние той машины и приступаете к установке безотносительно зависимостей, как будто Вы были в регулярной системе. Когда Вы закончены, компилируя, можно затем сбросить VM назад к, он - исходное состояние.
Стоит отметить, что, в то время как можно абсолютно сделать это бездисплейное т.е. в удаленной, серверной среде, намного легче создать VM на локальной машине (или удаленная машина с переданным X сессий.), После того как у Вас есть хороший основной VM, который Вы знаете, как получить доступ, можно затем экспортировать VM.