Como ter determinados arquivos em determinados caminhos automaticamente após a instalação do Debian (servidor)?

Como ter determinados arquivos em determinados caminhos automaticamente após a instalação do Debian (servidor)?

Fui solicitado a fazer um ISO de instalação para o servidor Debian tal que:

  1. Certos pacotes precisam ser pré-instalados nele.
  2. Certos arquivos (principalmente módulos Python) precisam ser localizados em determinados diretórios automaticamente.

As ISOs são fornecidas aos clientes e essas condições existem para eliminar a necessidade de quaisquer outras ações por parte deles após a instalação.

Atualmente, alcancei a primeira condição usandoCDD Simples; porém, para o segundo, não sei como posso conseguir isso. (Uma coisa mencionada na página Simple-CDD HOWTO é que os arquivos necessários podem ser listados em profiles/NAME.extrapara que eles sejam adicionados ao /simple-cdd no arquivo ISO, mas preciso desses arquivos no sistema de arquivos do próprio Debian depois de instalado).

Responder1

Para a pergunta nº 2, você poderia criar um *.debpacote e incluí-lo no Simple-CDD. Se preferir isso em vez de simplesmente implantar arquivos ou gerá-los com um script porque os arquivos são "de propriedade" de um pacote. Isso significa que você pode dpkg -S $filee entende por que eles estão presentes.

Nota: Considere atualizar esta resposta com instruções sobre como adicionar um *.debpacote ao Simple-CDD

A maneira nativa de configurar isso seria com dh_make, mas acho cpackmais fácil para casos triviais, como implantação simples de arquivos como este.

  1. Colete os arquivos que você deseja implantar em um diretório. Sugiro preservar a estrutura de diretórios. Farei tudo isso em relação a .isso, se você quiser implantar /etc/myconfig, copie-o para ./etc/myconfig.

  2. Crie ./CMakeLists.txtcom o seguinte conteúdo:

cmake_minimum_required(VERSION 3.7)
project(foo)

# Repeat this for each directory or file you want to install
install(DIRECTORY etc 
  DESTINATION /
  USE_SOURCE_PERMISSIONS
  COMPONENT default
)

set(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_NAME foo)
set(CPACK_PACKAGE_DESCRIPTION "Long description of what this package is"
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Short description")
set(CPACK_PACKAGE_VENDOR "The ones who installed your OS")
set(CPACK_PACKAGE_CONTACT "[email protected]")
set(CPACK_PACKAGE_VERSION "1.0")

set(CPACK_COMPONENT_ALL default)
set(CPACK_DEB_COMPONENT_INSTALL "ON")

include(CPack)

Nota: No Debian stretch e anteriores, cpackhavia um bug onde apenas gerava md5sums para a instalação de um componente. Isso quebrou algumas ferramentas como debsums. Essa é a única razão pela qual estou usando COMPONENTaqui. Este bug foi corrigido no Buster. Se você estiver usando o buster ou posterior, poderá excluir qualquer linha nele COMPONENT.

  1. Construa seu pacote
$ mkdir build && cd build
$ cmake ..
$ cpack

Você encontrará um *.debarquivo em seu diretório de construção. É isso que você deseja incluir no seu Simple-CDD.

  1. Verifique seu pacote

Rode isto:

$ dpkg --contents *.deb

Você deverá ver todos os arquivos que deseja incluir. O tamanho também deve fazer sentido. Você também pode considerar a instalação disso e, dpkg -i *.debem seguida, examinar os locais de destino para garantir que tudo esteja bem.

Responder2

Você sabe como enviar arquivos extras no CD com Simple-CDD; agora você pode enviar algum tipo de arquivo (ou até mesmo um pacote adequado) e descompactá-lo /targetusando umarquivo de pré-configuraçãocom umscript pós-instalaçãopara colocá-los no lugar certo.

Você não precisa pré-configurar todas as opções, apenas aquelas que deseja retirar do usuário que está fazendo a instalação.

informação relacionada