Sim, copiado de: pbuilder .
É possível usar o modo de usuário-linux invocando pbuilder-user-mode-linux em vez de pbuilder. O pbuilder-user-mode-linux não requer privilégios de root, e usa o método de acesso a disco copy-on-write (COW) do User-mode-linux, que normalmente torna muito mais rápido que o pbuilder tradicional.
User-mode-linux é uma plataforma menos comprovada que as ferramentas padrão do Unix nas quais o pbuilder confia (chroot, tar e gzip) mas madura o suficiente para suportar o pbuilder-user-mode-linux desde sua versão 0.59. E desde então, o pbuilder-user-mode-linux tem visto uma rápida evolução.
A configuração do pbuilder-user-mode-linux vai em três etapas:
-
Configuração do modo de usuário- linux
user-mode-linux não é completamente trivial de configurar. Provavelmente seria útil se familiarizar um pouco antes de tentar usar o rootstrap ou o pbuilder-user-mode-linux. Para detalhes, leia
/usr/share/doc/uml-utilities/README.Debian
e a documentaçãouser-mode-linux
. (Está em um pacote separado,user-mode-linux-doc
.)user-mode-linux requer que o usuário esteja no grupo uml-net para configurar a rede, a menos que você esteja usando slirp.
Se você compilar seu próprio kernel, você pode querer verificar se você habilitou o suporte a TUN / TAP, e você pode querer considerar o patch de SKAS.
-
rootstrap é um wrapper em torno do debootstrap. Cria uma imagem de disco Debian para uso com a UML. Para configurar o rootstrap, existem vários requisitos.
- Instale o pacote rootstrap.
- Apenas TUN / TAP: adiciona o usuário ao grupo uml-net para permitir acesso à rede %código%
- Apenas TUN / TAP: Verifique se o kernel suporta a interface TUN / TAP ou recompile o kernel, se necessário.
-
Configure
adduser dancer uml-net
. Por exemplo, se o host atual for 192.168.1.2, alterar as entradas a seguir para algo assim parece funcionar.transport=tuntap interface=eth0 gateway=192.168.1.1 mirror=http://192.168.1.2:8081/debian host=192.168.1.198 uml=192.168.1.199 netmask=255.255.255.0
Alguma experimentação com a configuração e execução de rootstrap ~ / test.uml para realmente testá-lo seria útil.
Usar slirp requer menos configuração. A configuração padrão vem com um exemplo funcional.
-
O seguinte precisa acontecer:
- Instale o pacote
/etc/rootstrap/rootstrap.conf
. -
Configure o arquivo de configuração
pbuilder-uml
da seguinte maneira. Será diferente para slirp.MY_ETH0=tuntap,,,192.168.1.198 UML_IP=192.168.1.199 UML_NETMASK=255.255.255.0 UML_NETWORK=192.168.1.0 UML_BROADCAST=255.255.255.255 UML_GATEWAY=192.168.1.1 PBUILDER_UML_IMAGE="/home/dancer/uml-image"
-
Ele precisa corresponder à configuração do rootstrap.
- Certifique-se de que BUILDPLACE seja gravável pelo usuário. Altere BUILDPLACE no arquivo de configuração para um local onde o usuário tenha acesso.
- Execute
/etc/pbuilder/pbuilder-uml.conf
para criar a imagem. - Tente executar o build pbuilder-user-mode-linux.
- Instale o pacote
Comentários extras no link:
pbuilder-user-mode-linux create --distribution sid
emula a maioria do pbuilder, mas existem algumas diferenças.
-
O
- pbuilder-user-mode-linux não suporta todas as opções do pbuilder corretamente ainda. Isso é um problema e será abordado à medida que áreas específicas forem descobertas.
- / tmp é tratado de forma diferente dentro do pbuilder-user-mode-linux. No pbuilder-user-mode-linux, o / tmp é montado como tmpfs dentro da UML, portanto, o acesso aos arquivos em / tmp do modo de usuário externo-linux não funciona. Ela afeta opções como --configfile e ao tentar criar pacotes colocados em / tmp.
Para executar o pbuilder-user-mode-linux em paralelo em um sistema, há algumas coisas a serem lembradas.
- Os métodos de criação e atualização não devem ser executados quando uma construção estiver em andamento ou o arquivo COW será invalidado.
- Se você não estiver usando o slirp, os processos do modo de usuário-linux que estão sendo executados em paralelo precisam ter endereços IP diferentes. Apenas tentar executar o pbuilder-user-mode-linux várias vezes resultará em falha no acesso à rede. Mas algo como o seguinte funcionará:
não testado