Diferente comportamento do fakechroot no Fedora e no Ubuntu

1

Considere a seguinte árvore de diretórios ( mychroot ):

mychroot/
├── proc
│   └── cpuinfo
└── usr
    └── bin
        └── ls

No Fedora 20:

$ fakechroot chroot ./mychroot/  /usr/bin/ls proc
cpuinfo

Versão:

$ fakechroot --version
fakechroot version 2.9

No Ubuntu:

$ fakechroot chroot ./mychroot/  /usr/bin/ls proc

lista as entradas / proc do chroot externo.

Versão:

$ fakechroot --version
fakechroot version 2.17.2

O que poderia estar acontecendo aqui? Obrigado por qualquer insight.

Atualização:

Definitivamente parece uma mudança de comportamento. Eu instalei 2.10 no Ubuntu e vejo o mesmo resultado que no Fedora (com 2.9):

$ /usr/local/bin/fakechroot --version
fakechroot version 2.10
$ /usr/local/bin/fakechroot chroot ./mychroot  /usr/bin/ls proc
cpuinfo

Arquivado uma edição do autor.

    
por Amit 20.04.2014 / 18:01

1 resposta

1

O fakechroot pode ser configurado para excluir alguns caminhos, ou seja, esses caminhos se referirão ao mesmo local dentro do (falso) chroot e do lado de fora. Isso é especialmente útil para diretórios como /dev e /proc , que é útil ter em todos os lugares, pois muitos programas dependem deles.

Os caminhos excluídos podem ser definidos por meio de:

  • a variável de ambiente FAKECHROOT_EXCLUDE_PATH ;
  • uma configuração FAKECHROOT_EXCLUDE_PATH nos arquivos de configuração em ~/.fakechroot e /etc/fakechroot , denominada COMMAND.env em que COMMAND é o comando chamado por fakechroot (por exemplo, chroot.env ).

Verifique se /proc está na lista excluída do Ubuntu através do ambiente, em ~/.fakechroot/chroot.env ou em /etc/fakechroot/chroot.env . No pacote Debian, /etc/fakechroot/chroot.env adiciona /dev , /proc e /sys a FAKECHROOT_EXCLUDE_PATH . Se você não quiser, copie /etc/fakechroot/chroot.env para ~/.fakechroot/chroot.env e edite a linha relevante ou passe o argumento -e para especificar um arquivo de configuração diferente (por exemplo, fakechroot -e /dev/null chroot … ).

    
por 21.04.2014 / 02:42

Tags