Ignorar Links de Navegao | |
Sair do Modo de Exibio de Impresso | |
![]() |
Guia de instalação do Oracle Solaris 10 8/11: JumpStart personalizado e instalações avançadas |
Parte I Utilizando JumpStart personalizada
1. Onde encontrar informações de planejamento de instalação Solaris
2. Personalização do JumpStart (visão geral)
3. Preparando instalações JumpStart personalizadas (tarefas)
4. Utilizando recursos JumpStart personalizados opcionais (tarefas)
5. Criando regras personalizadas e palavras-chave de sondagem (tarefas)
6. Efetuando uma instalação personalizada JumpStart (Tarefas)
7. Instalando com JumpStart personalizado (exemplos)
8. JumpStart Personalizado (Referência)
9. Instalação de um conjunto raiz do ZFS com o JumpStart
A. Solução de problemas (Tarefas)
B. Requisitos de embalagem SVR4 adicionais (Referência)
Prevenindo modificações do sistema operacional atual
Utilizando o comando pkgadd -R
Diferenças entre a visão geral $PKG_INSTALL_ROOT e $BASEDIR
Diretrizes para scripts escritos
Prevenindo a interação do usuário ao instalar ou atualizar
Seguir os requisitos desta seção manterá o sistema operacional atual em execução inalterado.
Para a instalação de um sistema operacional ser bem sucedida, os pacotes devem reconhecer e respeitar corretamente os sistemas de arquivos root (/) substitutos, como o ambiente de inicialização inativo do Solaris Live Upgrade.
Pacotes podem incluir caminhos absolutos no arquivo pkgmap (mapa do pacote). Se esses arquivos existirem, eles são escritos relacionados à opção -R do comando pkgadd. Pacotes que contêm caminhos absolutos e relacionados (realocáveis) podem ser instalados em um sistema de arquivos raiz ( /), alternativo também. $PKG_INSTALL_ROOT é precedido pelos arquivos absolutos e realocáveis para que todos os caminhos sejam resolvidos apropriadamente ao instalar o pkgadd.
Pacotes sendo instalados utilizando a opção pkgadd -R ou sendo removidos utilizando a opção pkgrm -R não devem alterar o sistema atual em execução. Esse recurso é utilizando por JumpStart personalizado, Solaris Live Upgrade, regiões não globais e clientes sem disco.
Qualquer script de procedimento que estiver incluído nos pacotes que estão sendo instalados com o comando pkgadd, opção -R ou sendo removido com o comando pkgrm, opção -R não deve alterar o sistema atual em execução. Qualquer script de instalação fornecido deve fazer referência a qualquer arquivo ou diretório que é prefixado com a variável $PKG_INSTALL_ROOT. O pacote deve escrever todos os diretórios e arquivos com o prefixo $PKG_INSTALL_ROOT. O pacote não deve remover diretórios sem um prefixo $PKG_INSTALL_ROOT.
Tabela B-1 fornece exemplos de sintaxe de script.
Tabela B-1 Exemplos de sintaxe de script de instalação
|
$PKG_INSTALL_ROOT é o local do sistema de arquivos raiz (/) da máquina na qual será adicionada o pacote. A localização é configurada para o argumento -R do comando pkgadd. Por exemplo, se o comando a seguir for chamado e, em seguida, $PKG_INSTALL_ROOT torna-se /a durante a instalação do pacote.
# pkgadd -R /a SUNWvxvm
Pontos $BASEDIR para o diretório da base realocável onde objetos de pacote realocáveis são instalados. Apenas objetos realocáveis são instalados aqui. Objetos não realocáveis (aqueles que possuem caminhos absolutos no arquivo pkgmap) são sempre instalados em relação ao ambiente de inicialização, mas não em relação ao $BASEDIR em efeito. Se um pacote não possui objetos realocáveis, então o pacote é chamado de pacote absoluto (ou não realocável) e $BASEDIR é indefinido e não avaliado para scripts de procedimento de pacote.
Por exemplo, suponha que um arquivo de pacote pkgmap possua duas entradas:
1 f none sbin/ls 0555 root sys 3541 12322 1002918510 1 f none /sbin/ls2 0555 root sys 3541 12322 2342423332
O arquivo pkginfo possui uma especificação para $BASEDIR :
BASEDIR=/opt
Se o pacote for instalado com o comando a seguir, então ls é instalado em /a/opt/sbin/ls, mas ls2 é instalado como /a/sbin/ls2.
# pkgadd -R /a SUNWtest
O script de procedimento do pacote deve ser independente do sistema operacional atualmente executado para prevenir a modificação do sistema operacional. Scripts de procedimento definem ações que ocorrerem em um momento particular durante a instalação e remoção do pacote. Quatro scripts de procedimento podem ser criados com estes nomes predefinidos: preinstall, postinstall, preremove, e postremove.
Tabela B-2 Diretrizes para a criação de scripts
|
Pacotes não devem executar comandos emitidos pelo próprio pacote. Isso é para manter a compatibilidade com cliente sem disco e evitar executar comandos que possam requisitar bibliotecas compartilhadas que ainda não estão instaladas.
Todos os pacotes devem passar na validação pkgchk. Depois da criação e antes da instalação de um pacote, é necessário verificá-lo com o comando a seguir.
# pkgchk -d dir_name pkg_name
Especifica o nome do pacote
Exemplo B-1 Testando um pacote
Depois da criação de um pacote, é necessário testá-lo na sua instalação em um local de sistema de arquivos raiz alternados (/) ao utilizar a opção - R dir_name para pkgadd. Depois da instalação do pacote, é necessário verificá-lo quanto à correção utilizando pkgchk, como neste exemplo.
# pkgadd -d . -R /a SUNWvxvm # pkgchk -R /a SUNWvxvm
Nenhum erro deve ser exibido.
Exemplo B-2 Testando um pacote em /export/SUNWvxvm
Se um pacote existe em /export/SUNWvxvm, então você deve emitir o comando a seguir.
# pkgchk -d /export SUNWvxvm
Nenhum erro deve ser exibido.
Outros comandos podem verificar o pacote quando você estiver criando, modificando ou excluindo arquivos. Os comandos a seguir são alguns exemplos.
Por exemplo, os comandos dircmp ou fssnap podem ser utilizados para verificar o comportamento de pacotes apropriadamente.
Além disso, o comando ps pode ser utilizado para testar o cumprimento Damon, certificando-se que daemons não são interrompidos ou iniciados pelo pacote.
Os comandos truss, pkgadd -v, e pkgrm podem testar o cumprimento da instalação do pacote do tempo de execução, mas pode não trabalhar em todas as situações. No exemplo a seguir, o comando truss remove todos os arquivos somente de leitura não $TEMPDIR , acessa e mostra apenas arquivos que não são somente de leitura para caminhos que não existem dentro do ambiente de inicialização inativo especificado.
# TEMPDIR=/a; export TEMPDIR # truss -t open /usr/sbin/pkgadd -R ${TEMPDIR} SUNWvxvm \ 2>&1 > /dev/null | grep -v O_RDONLY | grep -v \ 'open("'${TEMPDIR}