O primeiro caso é relativamente fácil, pelo menos para alguns programas. A maioria dos pacotes de fontes inclui um script configure
que verifica a disponibilidade das bibliotecas necessárias. Esses scripts geralmente terão opções para especificar caminhos de pesquisa. Por exemplo, --lib-prefix
. Dessa forma, você nem precisa modificar o Makefile sozinho. Agora, se isso funcionará ou não, dependerá da complexidade das dependências, mas vale a pena tentar.
Para a opção 2, você tem o programa chroot
:
chroot - run command or interactive shell with special root directory
chroot
precisa que determinados arquivos e diretórios estejam presentes. Os detalhes dependerão do que exatamente você precisa fazer (por exemplo, você precisa de /dev
? Você precisa de /proc
?). Você pode obter um ambiente chroot
mínimo como este (como root):
mkdir foo
cp -r /bin /lib /lib64 foo/
chroot foo
O último comando irá movê-lo para o diretório foo
e executar seu shell padrão tratando foo
as /
. O procedimento que descrevi é uma simplificação. Você não precisa de tudo em /lib
, por exemplo. Você provavelmente também precisará de mais diretórios para estar presente, dependendo do que você deseja fazer. Por fim, você também pode usar mount bind
para vincular os diretórios ao ambiente chroot
, mas não se quiser que ele seja completamente independente de seu sistema operacional real.
Uma maneira fácil de criar um playground é pegar uma pequena partição e instalar um sistema mínimo nessa partição. Você pode então simplesmente deixar o chroot
assim (sempre como root):
mount /dev/sda2 foo/
chroot foo/
Obviamente, altere sda2
para qualquer partição na qual você instalou seu sistema mínimo. Para mais informações, consulte estes links: