JavaScript is required to for searching.
Ignorar Links de Navegao
Sair do Modo de Exibio de Impresso
Guia de instalação do Oracle Solaris 10 1/13: Live Upgrade e planejamento da atualização     Oracle Solaris 10 1/13 Information Library (Português (Brasil))
search filter icon
search icon

Informação sobre o documento

Prefácio

Parte I Atualizando com o Live Upgrade

1.  Onde encontrar informações de planejamento da instalação Oracle Solaris

2.  Live Upgrade (visão geral)

3.  Live Upgrade (planejamento)

4.  Usando o Live Upgrade para criar um ambiente de inicialização (tarefas)

5.  Fazendo upgrade com o Live Upgrade (tarefas)

6.  Recuperação de falha: retrocesso para o ambiente de inicialização original (tarefas)

7.  Fazendo a manutenção de ambientes de inicialização do Live Upgrade (tarefas)

8.  Atualização do SO Oracle Solaris em um sistema com zonas não globais instaladas

9.  Exemplos do Live Upgrade

Parte II Atualizando e migrando com o Live Upgrade para um pool raiz ZFS

10.  Live Upgrade e ZFS (visão geral)

11.  Live Upgrade para ZFS (planejamento)

12.  Criando um ambiente de inicialização para pools raiz ZFS

13.  Live Upgrade para ZFS com zonas não globais instaladas

Parte III Apêndices

A.  Referência de comando do Live Upgrade

B.  Solução de problemas (tarefas)

C.  Requisitos de empacotamento SVR4 adicionais (referência)

Impedindo modificações do sistema operacional atual

Utilizando caminhos absolutos

Utilizando o comando pkgadd -R

Diferenças entre $PKG_INSTALL_ROOT e $BASEDIR

Diretrizes para a escrita de scripts

Mantendo a compatibilidade de cliente sem disco

Verificando pacotes

Impedindo a interação do usuário ao instalar ou atualizar

Configurando os parâmetros de pacote para zonas

Mais informações

D.  Utilizando o Patch Analyzer ao atualizar (tarefas)

Glossário

Índice

Impedindo modificações do sistema operacional atual

Seguir os requisitos desta seção manterá o sistema operacional atual em execução inalterado.

Utilizando caminhos absolutos

Para que a instalação de um sistema operacional seja bem-sucedida, os pacotes devem reconhecer e respeitar corretamente os sistemas de arquivos raiz (/) alternativos, como o ambiente de inicialização inativo do Live Upgrade.

Os 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.

Utilizando o comando pkgadd -R

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 é usado pelo JumpStart, Live Upgrade, zonas 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.

A tabela a seguir fornece exemplos de sintaxe de script.

Tabela C-1 Exemplos de sintaxe de script de instalação

Tipo de script
Sintaxe correta
Sintaxe incorreta
Fragmentos de instrução "if" Bourne shell
if [ -f ${PKG_INSTALL_ROOT}\
/etc/myproduct.conf ] ; then
if [ -f /etc/myproduct.conf ] ; \
 then
Removendo um arquivo
/bin/rm -f ${PKG_INSTALL_ROOT}\
/etc/myproduct.conf
/bin/rm -f /etc/myproduct.conf 
Alterando um arquivo
echo "test=no" > ${PKG_INSTALL_ROOT}\
/etc/myproduct.conf
echo "test=no" > \
/etc/myproduct.conf

Diferenças entre $PKG_INSTALL_ROOT e $BASEDIR

$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, ls será instalado em /a/opt/sbin/ls, mas ls2 será instalado como /a/sbin/ls2.

# pkgadd -R /a SUNWtest

Diretrizes para a escrita de scripts

O script de procedimento do pacote deve ser independente do sistema operacional atualmente executado para impedir a modificação do sistema operacional. Scripts de procedimento definem ações que ocorrem 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 C-2 Diretrizes para a criação de scripts

Diretrizes
Afeta o Live Upgrade
Afeta zonas não globais
Scripts devem ser gravados em Bourne shell (/bin/sh). Bourne shell é o intérprete utilizado pelo comando pkgadd para executar os scripts de procedimento.
X
X
Scripts não devem iniciar ou terminar qualquer processo ou depender da saída dos comandos como ps ou truss, que são sistemas operacionais dependentes e reportam informação sobre o sistema atual em execução.
X
X
Os scripts são livres para utilizar outros comandos padrão UNIX como expr, cp, ls e outros comandos que facilitam a criação de scripts de shell.
X
X
Qualquer comando que um script chamar deve estar disponível em todas as versões suportadas, uma vez que o pacote deve ser executado em todas as versões. Portanto, não é possível utilizar comandos que foram adicionados ou removidos depois da versão Solaris 8.

Para verificar se um comando ou opção em particular é suportado em uma versão do Solaris 8, Solaris 9 ou Oracle Solaris 10, consulte a versão específica do Manual de referência em http://www.oracle.com/technetwork/indexes/documentation/index.html.

X

Mantendo a compatibilidade de cliente sem disco

Pacotes não devem executar comandos emitidos pelo próprio pacote. Essa restrição mantém a compatibilidade de clientes sem disco e evita a execução de comandos que podem solicitar bibliotecas compartilhadas que ainda não estejam instaladas.

Verificando pacotes

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
dir-name
Especifica o nome do diretório onde o pacote reside
pkg-name

Especifica o nome do pacote

Exemplo C-1 Testando um pacote

Após um pacote ser criado, você deverá testá-lo instalando-o em um local de sistema de arquivos raiz (/) alternativo com 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 C-2 Testando um pacote em /export/SUNWvxvm

Se existisse um pacote em /export/SUNWvxvm, você executaria o seguinte comando:

# pkgchk -d /export SUNWvxvm

Nenhum erro deve ser exibido.

Outros comandos podem verificar o pacote quando você estiver criando, modificando ou excluindo arquivos. Por exemplo:

# 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}