SPARC T4, Solaris 11, sem acesso à internet, como instalar cabeçalhos de sistema (ou um compilador de trabalho)

2

Eu preciso compilar um programa C na máquina SPARC T4-1 (Solaris 11) que foi implantado na rede do cliente e não tem mais acesso à Internet. Originalmente durante a instalação, as ferramentas de compilação, nem os cabeçalhos do sistema foram instalados, e agora estou tendo problemas para compilar um programa em C.

Eu instalei um repositório local, de acordo com as instruções da Internet, e pkg pubisher agora mostra:

# pkg publisher
PUBLISHER                             TYPE     STATUS   URI
solaris                               origin   online   file:///export/repoSolaris11/repo/

No entanto, se eu tentar instalar o gcc (package gcc-dev , eu acho?), eu tenho um monte de reclamações do gerenciador de pacotes ( This version is excluded by installed incorporation ), cheguei a conclusão de que é porque originalmente era uma instalação de fábrica (a máquina veio setup do Oracle, e não foi tocada), e agora eu tentei adicionar um repositório local e a incompatibilidade de versões. Tentativa de instalação completa: link

Eu pensei em outra maneira de instalar um compilador C seria o Solaris Studio IDE (em um DVD), e eu tenho cc agora na máquina, mas falta os cabeçalhos do sistema, então eu não posso compilar nem mesmo um simples Olá Mundo. Tentando instalar system/headers em resultados muito semelhantes aos do gcc-dev:

sudo pkg install system/header
Creating Plan /                
pkg install: No matching version of system/header can be installed:
  Reject:  pkg://solaris/system/[email protected],5.11-0.175.1.0.0.24.2:20120919T184855Z
  Reason:  This version is excluded by installed incorporation     
  pkg://solaris/consolidation/osnet/[email protected],5.11-0.175.0.9.0.5.1:20120705T180850Z

Eu não estou familiarizado com o funcionamento do gerenciamento de pacotes da Solaris e gostaria de saber se existe alguma maneira de me livrar dessas mensagens de incorporação? Ou eu poderia simplesmente descompactar os arquivos de cabeçalho apropriados de algum lugar e compilar o programa com esses cabeçalhos?

Obrigado por qualquer dica

    
por julumme 11.12.2013 / 03:45

3 respostas

9

Eu não posso discordar de Danila - se você tem um contrato de suporte, use-o. Na verdade, você provavelmente desejará usá-lo para atualizar do Solaris 11 para o Solaris 11.1.

Dito isto, o seu problema é que o repositório local que você anexou é mais recente que o seu sistema instalado e não possui o conjunto correspondente de pacotes. Você deseja obter o ISO do repositório do Solaris 11 (e todos os SRUs), e não o Solaris 11.1 repo ISO.

Esta é a parte fundamental da mensagem de erro:

  Reason:  All versions matching 'require' dependency pkg:/group/feature/[email protected],5.11-0.174.0.0.0.0.0 are rejected
    Reject:  pkg://solaris/group/feature/[email protected],5.11-0.175.1.0.0.24.0:20120904T180329Z
    Reason:  This version is excluded by installed incorporation pkg://solaris/consolidation/ips/[email protected],5.11-0.175.0.9.0.3.0:20120623T000446Z

Isso está dizendo que nenhuma versão do pacote "developer-gnu" (o novo nome para "gcc-dev") pode ser instalado. Ele só encontrou um (a versão S11.1 - "0.5.11" é a versão de todos os pacotes do sistema Solaris 11, e a versão do ramo após o traço diz "Solaris 11" (0,175) "Atualização 1" (.1) , sem SRU (.0), sem plataforma especial (.0), compilação 24 (.24), sem respins (.0)), mas não pode porque o pacote ips-incorporação, que é o S11 (FCS) A versão do SRU 9 está instalada e isso restringirá o desenvolvedor-gnu à versão correspondente. Você pode ver isso precisamente se você executar

pkg contents -m ips-incorporation

e procure pela ação depend (de type = incorporate) em fmri = group / feature / developer-gnu @ ...

O conselho para relaxar restrições através da configuração de facetas é útil para alguns pacotes, mas não, como se vê, este. Além disso, o developer-gnu é apenas um pacote de grupo que incluirá vários utilitários de desenvolvimento GNU sobre o próprio gcc, incluindo GNU binutils, GNU make, autotools, gdb, etc. Em um mundo melhor, você seria capaz para definir as facetas de bloqueio de versão para cada um desses pacotes como false e instalá-las de forma independente, ignorando o pacote do grupo. Mas você ainda se depararia com o problema de as versões desses pacotes no repositório terem sido construídas em relação a uma versão do sistema operacional mais recente do que a que você instalou e, portanto, suas dependências também são contra essas versões mais recentes. Suas únicas opções, além de contornar o sistema de empacotamento, são atualizar ou obter os repositórios do S11 + SRU.

    
por 11.12.2013 / 18:16
4

Se esta for a caixa de produção SPARC T4 com o Solaris 11. Se eu estivesse na sua situação, eu não iria mexer com isso e obter suporte do Oracle. Especialmente no caso da dúvida ao instalar um dos aspectos cruciais dos sistemas como cabeçalhos de sistema para "gcc" enquanto estiver no estado de "I'm not at all familiar with how solaris package management works." Por favor, faça isso e você economizará muito tempo para si e para outras pessoas.

    
por 11.12.2013 / 04:06
2

Bem, antes de tudo, leia a resposta de Danila .
Se você não tem familiaridade com o gerenciamento de pacotes do Solaris, não se preocupe com isso em um sistema de produção - faça como ele disse e peça a alguém que saiba o que está fazendo para ajudá-lo.

Com isso fora do caminho:

Sua primeira opção é dizer ao Solaris para não ser uma criatura tão exigente quanto às restrições de versão em incorporações .
(Para mais detalhes sobre incorporações, confira esta postagem no blog .)

Sua outra opção é baixar e instalar pacotes de compiladores de terceiros de outra fonte como sunfreeware.com. Como você diz que não tem acesso à Internet, você terá que colocá-los em CD / DVD / pendrive / alguma outra mídia que você possa conectar ao seu sistema.
Geralmente, o tipo de sistema sem acesso à Internet tem outras restrições de segurança, e as pessoas responsáveis desaprovam a instalação de pacotes de terceiros não auditados.

O que nos leva à opção 3: Instalar um compilador em algum outro sistema, compilar seu software, empacotá-lo e instalá-lo nessa máquina.
Dependendo do motivo pelo qual você não tem um compilador, esta pode ser a melhor opção ...

    
por 11.12.2013 / 04:13