The Wiki has moved to new hardware, and the old server died.

Welcome to the Slackware Documentation Project

Configurando um chroot do Slackware

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

  • construir pacotes de 32 bits em um sistema multilib de 64 bits
  • construir pacotes -stable em um sistema -current
  • construir (e testar) pacotes para SBo em um sistema limpo

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

  • Traduzido por — Slackjeff 2020/11/18 14:11 (UTC)


Em outras línguas
Traduções desta página?:
QR Code
QR Code pt-br:howtos:general_admin:setting_up_a_slackware_chroot (generated for current page)