Table of Contents

Configurando um chroot do Slackware

Existem vários motivos pelos quais você pode querer configurar um chroot do Slackware:

Para este guia, vamos criar um chroot em /chroot_folder a partir de slackware-14.1-install-dvd.iso.

Obtendo uma instalação do Slackware de sua arquitetura desejada

Comece com um DVD de instalação do Slackware. Baixe-o em http://www.slackware.com/getslack/ via torrent.

Instalado os pacotes

Automático

Você pode criar seu chroot e instalar o Slackware nele usando o seguinte script elegante: http://tty1.uk/scripts/slackware/mkchroot

Manual

Primeiro, crie uma pasta que conterá o chroot:

mkdir /chroot_folder

Monte a ISO de instalação:

mount -o loop slackware-14.1-install-dvd.iso /mnt/cdrom
cd /mnt/cdrom

Após a montagem do ISO, os pacotes (encontrados na pasta slackware ou slackware64) podem ser instalados na pasta chroot com:

installpkg --root /chroot-folder */*.t?z

Em seguida, desmonte o ISO:

umount /mnt/cdrom

Configurando os arquivos necessários

fstab

O seguinte snippet mínimo pode ser usado para /chroot_folder/etc/fstab

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
tmpfs           /dev/shm        tmpfs    defaults        0      0
devpts          /dev/pts        devpts   noexec,nosuid,gid=tty,mode=0620  0      0
sysfs           /sys            sysfs    defaults        0      0
proc            /proc           proc     defaults        0      0

Entrar com Chroot

Montagem automática

Para ter o chroot montado permanentemente, adicione o seguinte em seu sistema host /etc/fstab:

/dev             chroot_folder/dev             none bind,auto 0 0
/proc            chroot_folder/proc            none bind,auto 0 0
/sys             chroot_folder/sys             none bind,auto 0 0
/etc/resolv.conf chroot_folder/etc/resolv.conf none bind,auto 0 0

E reinicie. Em seguida, execute o seguinte comando para montar a pasta chroot:

mount /chroot_folder

Montagem manual

Referência: (volume_mounting).

Entrando no Chroot

Agora que o chroot está configurado, pode-se fazer o chroot nele:

chroot /chroot_folder /bin/bash

Nota

Foi escrito um pequeno script para automatizar as etapas do chroot.

https://raw.githubusercontent.com/aadityabagga/scripts/master/chroot.sh

Atualizando pacotes

Depois disso, você pode executar o slackpkg e atualizar os pacotes: (configure_a_package_manager).

Saindo do chroot

Quando terminar, saia do chroot pressionando Ctrl+d.

Criando pacotes de 32 bits

Montagem de partições

Eu uso um chroot para construir pacotes de 32 bits em um sistema de 64 bits. Eu precisava montar a partição que continha os SlackBuilds para os quais eu queria fazer um pacote, como meu ponto de montagem do host do Slackware está (neste exemplo) em /slackware_host_mount_point, utilizei o comando:

mount -B /slackware_host_mount_point /chroot_folder

(http://www.thegeekstuff.com/2013/01/mount-umount-examples/)

Então eu construí o pacote executando o Slackbuild da seguinte maneira:

ARCH=i686 ./my_package.SlackBuild

Uma maneira alternativa de construir outros pacotes ARCH

Em vez de usar `ARCH=i686' antes de executar um slackbuild, podemos usar um programa chamado `setarch', que, entre outras coisas, pode definir o ARCH e o kernel versão no shell. Possui alguns links simbólicos úteis, como linux32 ou i586, o que economiza alguma digitação. O comando `linux32 'irá definir o kernel relatado ARCH como `i686'.f

SINOPSE

  setarch arch [options] [program [argument...]]

Quando executamos o `linux32', ele inicia um novo shell, portanto, também podemos usá-lo para fazer o chroot:

  chroot /path/to/chroot linux32 /bin/zsh

ou pode ser executado após fazer o chroot em nossa nova raiz. As configurações serão revertidas para normal quando saímos do novo shell. Uma opção útil é mudar o kernel versão relatada:

  chroot /path/to/chroot linux32 --uname-2.6 /bin/zsh

Que `–uname-2.6' não é um erro de digitação, deve haver um traço entre a flag e a versão. A página do manual setarch (8) mostra todas as opções.

– Dave

Veja também

Fontes