Ir para o conteúdo
TURNKEYGNU / LINUX
AplicativosDocumentaçãoBlogCapturas de telaGitHubTurnKey Hub
文Português
EnglishEspañol中文日本語PortuguêsDeutsch
Principal/Desenvolvimento de patch

Documentação

Desenvolvimento de patch

Se ainda não leu o documentação geralPor favor, faça-o agora.

Olá, exemplo de patch.

tklpatch-example helloworld

Isto executa o tklpatch- exemplo para criar um patch de exemplo no diretório helloworld/. Se for necessário um controlo mais fino no seu patch, então pode ser criado um exemplo avançado usando o --advanced Troca.

Quando este patch é aplicado a um ISO, ele irá criar um novo ISO em que o Olá. o pacote está instalado e a mensagem do dia foi alterada. Vamos tentar no turnkey-core.iso (que nós baixamos anteriormente) e ver tklpatch em ação:

tklpatch turnkey-core.iso helloworld

Nos bastidores, quando tklpatch aplicou o nosso patch helloworld, seguiu as instruções no arquivo 'conf' do patch:

$ cat helloworld/conf
#!/bin/bash -ex
install()
{
    apt-get update
    DEBIAN_FRONTEND=noninteractive apt-get -y \
        -o DPkg::Options::=--force-confdef \
        -o DPkg::Options::=--force-confold \
        install $@
}

# installs hello - a highly useful package
install hello

# tell the world what we've done!
echo 'Hello world - I just patched TurnKey!' >> /etc/issue


Exemplo de patch Drupal5

Para fins educacionais, tklpatch inclui um patch de exemplo mais complexo que irá transformar TurnKey LAMP em um Drupal5 appliance. /usr/share/tklpatch/examples quando tklpatch é instalado via apt-get, ou /usr/local/share/tklpatch/examples quando instalado a partir da origem. O patch de exemplo também está disponível em github para referência.

 

Criar o esqueleto de um novo patch do zero

mkdir mypatch
mkdir mypatch/debs
mkdir mypatch/overlay
touch mypatch/conf; chmod +x mypatch/conf

Agora você precisa descobrir como seu patch deve mudar o appliance remetido para obter o resultado que deseja. É muitas vezes mais fácil descobrir isso interativamente em um sistema "vivo" por tentativa e erro. Você pode configurar um ambiente de teste instalando o appliance que deseja patch em uma VM e, em seguida, experimentando para encontrar as mudanças que você precisa fazer. Você também pode experimentar em um ambiente chroot.

 

Dicas e truques de desenvolvimento

TKLPatch tem um design modular que permite desenvolver o seu patch incrementalmente dentro de uma instância appliance virtual instalada ou no sistema de arquivos raiz extraído de um ISO um ciclo de desenvolvimento no qual você ajustar e testar em rápida sucessão é muitas vezes mais produtivo do que um que tem um longo ciclo de feedback.

Como configurar e experimentar em um ambiente chroot:

tklpatch-extract-iso path/to/image.iso

Isto irá extrair o sistema de ficheiros do appliance e o cdroot do ISO. Poderá então chroot para o sistema de ficheiros do appliance. Dentro do chroot é fácil experimentar para descobrir o que seu patch deve fazer. Por exemplo, você pode instalar manualmente pacotes, fazer ajustes na configuração, etc. Quando você sabe o que precisa ser feito, atualize o mypatch para refleti-lo (por exemplo, adicionando instruções para conf, arquivos para a sobreposição, etc.)

tklpatch-chroot path/to/image.rootfs

Uma vez concluído, você pode remover os diretórios temporários rootfs e cdroot que você experimentou, e testar seu patch (de preferência em uma máquina virtual) aplicando-o ao seu ISO de escolha:

tklpatch path/to/image.iso path/to/mypatch

Próximo. publicá-lo.

TURNKEYGNU / LINUX

Controle sua infraestrutura sem começar do zero.

Explorar o TurnKey
SobreDocumentaçãoPerguntas frequentesBlogGitHub
Livre e de código abertoSeguro por padrãoPronto para implantar