GCC ausente do Solaris 11 e servidor já implantado (sem acesso à internet)

2

Estou tendo um problema peculiar, em que um servidor já foi implantado e não está mais conectado à rede. Para sua finalidade original, ele não precisava de ferramentas de compilação C / C ++ e, portanto, elas nunca foram instaladas.

Eu verifiquei /usr/sfw/bin , mas na verdade eles estão faltando ...

Eu não estou muito familiarizado com o ambiente Solaris, mas não consigo encontrar o GCC como "pacote instalável" (semelhante ao dpkg para debian) para o Solaris 11. Parece haver coisas para ambientes Solaris mais antigos . Existe alguma maneira de pós-instalar essas ferramentas sem usar a conexão com a Internet e o gerenciador de pacotes? Existe, por exemplo, uma imagem de DVD em algum lugar que eu poderia usar como fonte para o gerenciador de pacotes?

Eu gostaria de executar um programa que escrevi em C ++, mas não consigo compilar o código na minha máquina enquanto estou executando uma máquina Linux x86 de 64 bits.

Eu tenho acesso a uma máquina Solaris 8 mais antiga, que é a configuração OK e que usei para criar um binário estático (usado gcc 3.8 ). O programa é executado, mas há algum comportamento estranho com a formatação de strings e ele não é executado como esperado - esse comportamento não é visto no host do Solaris 8.

Eu posso copiar as bibliotecas da máquina, por exemplo, para criar um ambiente de compilação cruzada, mas não tenho certeza se é assim tão fácil. Do arquivo dinamicamente vinculado, vejo por exemplo que eu ligo contra libstdc ++, mas que está faltando na máquina de destino.

Então, gostaria de saber se posso criar um ambiente de compilação cruzada adequado?

    
por julumme 02.09.2013 / 11:41

5 respostas

4

/usr/sfw/bin é o caminho gcc empacotado com o Solaris 10. No Solaris 11.1, gcc é, quando instalado, diretamente disponível em /usr/bin como um link simbólico que aponta para /usr/gcc/<version>/bin/gcc .

Existe agora um formato de dados em disco para pacotes ips ( .p5p files), mas eu sugiro que você baixe todo o repositório (procure por imagem do repositório Oracle Solaris 11.1 na página de download do Solaris 11.1 ) e crie seu próprio serviço ips. Veja este blog para detalhes. Isso permitiria instalar qualquer pacote do qual o gcc seja dependente e possivelmente outros pacotes que ainda possam estar faltando para sua tarefa.

    
por 02.09.2013 / 17:26
0

Para mim, parece que você pode acessar o Solaris 11 Package Repository na Web também, e você pode baixar pacotes lá. Edit: Eu estou corrigido (obrigado @alanc), você só pode baixar "cabeçalhos" para os pacotes lá, então a única opção é obter os pacotes de outra forma.

Suponho que haja uma maneira de direcionar o gerenciador de pacotes Solaris para instalar um único arquivo com alguns parâmetros de linha de comando. O problema dessa abordagem é descobrir todas as dependências que ainda podem estar faltando sem baixar iterativamente, tentar instalar e pesquisar novamente para a próxima.

Eu também diria que há imagens de DVD que contêm as versões originais de todos os pacotes essenciais, e o gcc é algo que eu esperaria fazer parte disso.

    
por 02.09.2013 / 12:43
0

Esteja ciente de que, se você estiver dentro de uma zona local (você está?), você não precisará realmente acessar a Internet para usar os comandos pkg ou, mais corretamente, essa zona não precisará dela. O motivo é que o IPS (quando usado dentro de zonas) usa automaticamente o IPS da região global como um servidor proxy repo. Mas é claro que, mesmo que a região global não tenha acesso à Internet, você precisará seguir a resposta do jlliagre.

Você pode analisar essa postagem sobre o que instalar no Solaris 11. seja um par de comandos pkg e pronto!

    
por 05.09.2013 / 11:39
0

Uma opção é obter os pacotes que você precisa de www.UNIXPackages.com (requer uma assinatura) e os arquivos individuais podem ser baixados para uma máquina (Linux no seu caso), gravado em um DVD e depois movido e instalado em uma máquina Solaris 11.

Nenhuma conexão com a Internet para a máquina Solaris 11 é necessária. Atualizações e outros acréscimos seriam fáceis de fazer no futuro.

Esta é uma das vantagens que o UNIX Packages tem sobre o IPS e o OpenCSW. Sinta-se livre para enviar perguntas técnicas de suporte em unixpackages dot com.

    
por 10.09.2013 / 21:08
0

Eu tive um problema semelhante e usei outro sistema que estava conectado à internet & suporte repo. Resumo rápido dos passos a seguir. No entanto, observe que você pode ter problemas de dependência e de versão, portanto, a abordagem reco'd / preferred seria construir um servidor de repo local completo - especialmente se o (s) seu (s) sistema (s) devem permanecer desconectados do repositório de suporte. / p>

// Pega o iperf pkg e salva como /tmp/iperf.p5p

pkgrecv -s https://pkg.oracle.com/solaris/support/ -d /tmp/iperf.p5p -a -r pkg://benchmark/iperf

// Verifique o conteúdo do pacote com:

pkgrepo -s /tmp/iperf.p5p list

// ou você pode usar:

pkg list -f -g /tmp/iperf.p5p

// Eu tive que desativar o editor solaris para instalar pkg set-publisher --disable solaris

// Sneaker-net o arquivo p5p para o sistema desconectado

// Instalar pacote (s):

pkg install -g file:///tmp/iperf.p5p benchmark/iperf

    
por 12.06.2017 / 21:39