## NOME

Tazlito — SliTaz Live Tool.

## SINTAXE

    tazlito [command] [list|iso|flavor] [dir]

## DESCRIÇÃO

Tazlito é um pequeno utilitário que extrai um LiveCD, reconstrói a imagem ISO e regenera o sistema de arquivos root do LiveCD, criando uma variante (flavor) da distribuição. O Tazlito também pode gerar uma distribuição a partir de uma lista de pacotes previamente baixados. Para rodar, o Tazlito usa o arquivo de configuração `/etc/slitaz-tools/tazlito.conf` ou o `tazlito.conf` gerado pelo Tazlito no diretório atual. Este arquivo especifica o nome da ISO, volume, mantenedor, os caminhos dos pacotes a serem incluidos e da ISO a ser gerada. Tazlito também pode ser usado para configurar um diretório contendo arquivos adicionais que serão copiados para o LiveCD na geração da distribuição.

Tazlito é distribuído sobre a licença livre GNU GPL v.3, istalada por padrão no SliTaz e instalada/testada com sucesso no Debian GNU/Linux. Você irá encontrar informações adicionais sobre a criação de um LiveCD no Manual SliTaz.

## COMANDOS

### usage

O comando `usage` mostra um resumo dos comandos disponíveis com uma pequena descrição:

    # tazlito usage

### stats

`stats` mostra as variáveis da configuração, os caminhos para os vários arquivos e diretórios e informações sobre a imagem ISO:

    # tazlito stats

### gen-config

O comando `gen-config` permite a geração do arquivo de configuração pronto para ser editado. Por padrão o arquivo é criado no diretório atual, mas também pode ser em outro diretório informado na linha de comando:

    # tazlito gen-config
    # tazlito gen-config /path/to/distro

### configure

Este comando pode configurar o arquivo de configuração do sistema ou o encontrado no diretório atual:

    # tazlito configure

### gen-iso

O comando `gen-iso` pode gerar uma nova imagem do LiveCD a partir de modificações e adições ao sistema de arquivos root do CD-ROM. Para funcionar, este comando precisa de um diretório que contenha a “árvore” da distribuição do sistema Live. Esta “árvore” pode ser facilmente gerada com o comando `extract-distro`, modificada ou reconstruida via:

    # tazlito gen-iso

### gen-initiso

O comando `gen-initiso` faz o mesmo que o `gen-iso`, mas antes ele reconstrói o sistema comprimido initramfs. O initramfs contem o sistema de arquivos root e deve ser reconstruído se modificado:

    # tazlito gen-initiso

### list-flavors

Este comando baixa (se necessário) e mostra a lista de diferentes variantes disponíveis. Pode-se forçar o download com a opção `--recharge`:

    # tazlito list-flavors
    # tazlito list-flavors --recharge

### get-flavor

O comando `get-flavor` baixa (se necessário) e prepara os arquivos para que o comando `gen-distro` gere uma variante:

    # tazlito get-flavor particular-flavor

### show-flavor

Este comando mostra a descrição da variante e seu tamanho após a regeneração. As opções `--brief` e `--hoheader` reduzem a saida do comando:

    # tazlito show-flavor particular-flavor
    # tazlito show-flavor particular-flavor --brief
    # tazlito show-flavor particular-flavor --brief --noheader

### gen-flavor

O comando `gen-flavor` cria um arquivo de descrição de uma nova variante a partir dos resultados da regeneração da distro (`gen-distro`). O arquivo `.flavor` pode ser enviado ao slitaz.org:

    # tazlito gen-flavor new-flavor

### gen-liveflavor

Este comando cria um arquivo de descrição de uma nova variante a partir dos resultados de geração da distro baseada no sistema atual. A opção `--help` mostra mais informações

    # tazlito gen-liveflavor
    # tazlito gen-liveflavor --help

### upgrade-flavor

Este comando renova um arquivo flavor, atualizando a lista de pacotes com a versão mais recente disponível no mirror:

    # tazlito upgrade-flavor this-flavor

### extract-flavor

O comando `extract-flavor` converte um flavor em uma estrutura de pastas facilmente modificável em `/home/slitaz/VERSION/flavors` que pode ser ser gerenciada com o mercurial: http://hg.slitaz.org/flavors.

    # tazlito extract-flavor this-flavor

### pack-flavor

Este comando converte uma estrutura de pastas encontrada em `/home/slitaz/VERSION/flavors` em um arquivo de variante (`.flavor`). É o inverso do que o comando `extract-flavor` faz:

    # tazlito pack-flavor this-flavor

### extract-distro

Este comando é usado para extrair uma imagem ISO do LiveCD e reconstruir a estrutura do CD-ROM e sistema root. Isto possibilita fazer as mudanças desejadas, adições e reconstruções da imagem ISO por meio do comando `gen-iso` ou `gen-initiso`. Exemplo de uso:

    # tazlito extract-distro slitaz-cooking.iso

### gen-distro

O comando para Geração de Distribuição pode gerar a árvore da distribuição e a imagem ISO por meio de uma lista de pacotes. Para funcionar, este comando precisa da lista de pacotes, um diretório contendo todos os pacotes `.tazpgk` especificados na lista e um diretório para gerar a distribuição. A lista de pacotes pode ser extraida de uma variante pelo comando `get-flavor`. Ao se utilizar o LiveCD, as opções `--cdrom` e `--iso=` permitem a regeneração dos pacotes que adicionam arquivos ao diretório `/boot` sem que seja necessário o download dos mesmos e recuperam os arquivos adicionais do LiveCD. O caminho para os vários diretórios é informado no arquivo de configuração e os pacotes podem ser baixados dos mirrors do SliTaz ou gerados pelo Cookutils. Para gerar uma distribuição:

    # tazlito gen-distro
    # tazlito gen-distro --cdrom
    # tazlito gen-distro --iso=slitaz.iso
    # tazlito gen-distro package-list

### clean-distro

Remove todos os arquivos gerados ou extraidos da estrutura do LiveCD:

    # tazlito clean-distro

### check-distro

Este comando simplesmente verifica se os arquivos instalados pelos pacotes estão presentes no sistema:

    # tazlito check-distro

### writeiso

Este comando irá converter o sistema de arquivos atual em um arquivo cpio (`rootfs.gz`) e então gerar uma imagem ISO inicializável. Pode ser usado tanto em instalações no HD quanto em modo LiveCD, e irá arquivar também o conteúdo do diretório `/home`. Com ele, pode-se facilmente remasterizar e construir sua própria imagem de LiveCD. Para tanto inicie o sistema, modifique arquivos, instale pacotes e então:

    # tazlito writeiso [gzip|lzma|none]
    # tazlito writeiso gzip
    # tazlito writeiso gzip image-name

### check-list

Verifica se o arquivo `distro-packages.list` está atualizado com as mais recentes versões dos pacotes:

    # tazlito check-list

### repack

Comprime novamente o rootfs com a melhor compressão possível:

    # tazlito repack slitaz.iso

### merge

Combina diversas variantes. Cada rootfs é uma consequência de seu anterior. O primeiro rootfs é extraido da imagem ISO indicada como terceiro argumento. As variantes serão escolhidas no momento do boot, de acordo com a memória RAM disponível:

    # tazlito merge 160M slitaz-core.iso 96M rootfs-justx.gz 32M rootfs-base.gz

### build-loram

Cria uma variante para sistemas com pouca memória RAM à partir de uma imagem ISO do SliTaz. Pode-se gerar uma variante que seja carregada na diretamente na memória ou lida a partir do CD-ROM:

    # tazlito build-loram slitaz.iso loram.iso
    # tazlito build-loram slitaz.iso loram-cdrom.iso cdrom

### emu-iso

O comando `emu-iso` utiliza o emulador Qemu para iniciar e rodar o SliTaz. É util para testar a ISO criada sem a necessidade de gravá-la em um CD-ROM ou bootar em modo frugal.

    # tazlito emu-iso
    # tazlito emu-iso path/to/image.iso

### burn-iso

O comando `burn-iso` obtém informações sobre o dispositivo de CD e as velocidades permitidas para gravação, e o wodim (parte do cdrkit) inicia para gravar a imagem ISO. A imagem ISO padrão é aquela especificada no arquivo de configuração, mas é possível especificar uma imagem diferente por meio da linha de comando:

    # tazlito burn-iso
    # tazlito burn-iso slitaz-hacked.iso

## FLAVORS

Um arquivo `.flavor` contém somente alguns poucos Kb de informação necessária para (re)construir um LiveCD customizado do SliTaz.

### (Re)construa uma variante

Você pode escolher uma variante para (re)construir a partir daquelas disponíveis:

    # tazlito list-flavors

    List of flavors
    ================================================================================
    Name              ISO   Rootfs  Description
    ================================================================================
    base               6.9M  13.1M  Minimal set of packages to boot
    core-3in1         31.5M 105.6M  SliTaz core system with justX and base alternatives
    core              31.5M 104.6M  SliTaz core system
    eeepc             31.2M 105.4M  SliTaz eeepc system
    justX             16.1M  51.2M  SliTaz with a minimal X environment

Como exeplo, começaremos a reconstruir a variante eeepc que ocupa 105.4M de RAM e possui um tamanho de imagem ISO de 31.2M:

    # tazlito clean-distro
    # tazlito get-flavor eeepc
    # tazlito gen-distro

### Crie uma variante

Para criar uma variante, você deve:

- Criar uma imagem ISO usando o comando `tazlito gen-distro` e então criar um arquivo flavor usando `tazlito gen-flavor`; ou
- Criar diretamente uma estrutura de arquivos que define o flavor (veja `tazlito extract-flavor`) e então criar o flavor usando `tazlito pack-flavor`.

### Publique uma variante

Um arquivo `.flavor` possui alguns Kb de tamanho, então você pode enviá-lo para a lista de discussão do SliTaz.

Os arquivos resultantes do comando `tazlito extract-flavor` pode também ser colocado no repositório mercurial. Este método é preferido porque a estrutura de pastas poderá ser acessada diretamente por uma interface web.

Esta estrutura inclui:

- Uma receita (arquivo receipt) que descreve a variante por intermédio das variáveis:
  - FLAVOR: O nome da variante.
  - SHORT_DESC: Uma curta descrição
  - VERSION: Versão.
  - MAINTAINER: Email do desenvolvedor/criador.
  - FRUGAL_RAM: Memória RAM mínima recomendável (variável opcional).
  - ROOTFS_SIZE: Tamanho que o rootfs.gz ocupa descomprimido na RAM (opcional).
  - INITRAMFS_SIZE: Tamanho que o rootfs.gz ocupa em um CD-ROM (opcional).
  - ISO_SIZE: Tamanho do CD-ROM (opcional).
  - ROOTFS_SELECTION: Opcional, veja Meta flavor abaixo.
- O arquivo packages.list contem a lista de pacotes sem especificar uma versão (o tazlito sempre utiliza os últimos pacotes disponíveis). Este arquivo não aparece caso a variável ROOTFS_SELECTION esteja definida.
- O arquivo opcional mirrors contem a lista de mirror não oficiais (undigest) a serem incluidos para se obter pacotes personalizados.
- O diretório opcional rootfs contem uma estrutura de pastas e arquivos a serem adicionados ao sistema de arquivos rootfs.gz (normalmente serão arquivos de configuração).
- O diretório opcional rootcd contem uma estrutura de pastas e arquivos a serem adicionados ao CD-ROM.

### Adapte uma variante

Às vezes é mais fácil modificar uma variante existente do que criar uma nova. Para adaptar a variante eeepc, por exemplo:

    # tazpkg get-install mercurial
    # cd /home/slitaz
    # hg clone http://hg.slitaz.org/flavors
    # cd flavors
    # cp -a eeepc myslitaz

Arquivos em `my-slitaz` podem ser adaptados, então:

    # tazlito pack-flavor myslitaz

Isto irá criar uma nova variante adaptada de uma outra existente.

Dica: Pode-se evitar a instalação do mercurial extraindo-se uma variante. Usando o exemplo anterior:

    # tazlito get-flavor eeepc
    # tazlito extract-flavor eeepc.flavor
    # cd /home/slitaz/flavors
    # cp -a eeepc myslitaz

### Meta flavor

Uma meta variante (meta flavor) contem diversas variantes juntas. Ao se iniciar o sistema com uma meta variante, uma variante contida no LiveCD irá ser chamada dependendo do tamanho da memória RAM disponível. A variável ROOTFS_SELECTION define o mínimo de RAM a ser utilizada e os parametros das variantes existentes. Exemplo usando a meta variante:

    ROOTFS_SELECTION="160M core 96M justX 32M base"

Este tipo de variante não possui uma lista de pacotes (`packages.list`) e só é suportada no SliTaz a partir do kernel 2.6.30.

## MANTENEDOR

Christophe Lincoln <pankso at slitaz.org>
Pascal Bellard <pascal.bellard at slitaz.org>