Назад | Перейти на главную страницу

SPARC T4, Solaris 11, нет доступа к Интернету, как установить системные заголовки (или рабочий компилятор)

Мне нужно скомпилировать программу C на машине SPARC T4-1 (Solaris 11), которая была развернута в сети заказчика и больше не имеет доступа к Интернету. Первоначально во время установки не были установлены ни инструменты компиляции, ни системные заголовки, а теперь у меня возникли проблемы с компиляцией программы на C.

Я установил локальный репозиторий в соответствии с инструкциями в Интернете, и pkg pubisher теперь показывает:

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

Однако, если я попытаюсь установить gcc (package gcc-dev, Думаю?), У меня куча жалоб от диспетчера пакетов (This version is excluded by installed incorporation), Я пришел к выводу, что это потому, что изначально это была заводская установка (машина была настроена из Oracle, и она не была затронута), а теперь я попытался добавить локальный репозиторий, и версии не совпадают. Полная попытка установки: http://pastebin.com/m3wazmU7

Я подумал о другом способе установки компилятора C - это IDE Solaris Studio (на DVD), и у меня есть cc сейчас на машине, но в нем отсутствуют системные заголовки, поэтому я не могу скомпилировать даже простой привет мир. Попытка установить system/headers приводит к очень похожему на gcc-dev:

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

Я совершенно не знаком с тем, как работает управление пакетами Solaris, и мне интересно, есть ли способ избавиться от этих сообщений о включении? Или я мог бы просто распаковать откуда-то нужные файлы заголовков и скомпилировать программу с этими заголовками?

Спасибо за любые советы

Не могу не согласиться с Данилой - если у вас есть контракт на поддержку, воспользуйтесь им. Фактически, вы, вероятно, захотите использовать его для обновления с Solaris 11 до Solaris 11.1.

Тем не менее, ваша проблема в том, что локальный репозиторий, который вы подключили, новее, чем ваша установленная система, и не имеет соответствующего набора пакетов. Вы хотите получить ISO репозитория Solaris 11 (и все SRU), а не ISO репозитория Solaris 11.1.

Это ключевая часть сообщения об ошибке:

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

Это означает, что никакая версия пакета «developer-gnu» (новое название для «gcc-dev») не может быть установлена. Он нашел только один (версия S11.1 - «0.5.11» - это версия для всех системных пакетов Solaris 11, а версия ветки после тире говорит «Solaris 11» (0,175) «Обновление 1» (.1) , без SRU (.0), без специальной платформы (.0), сборка 24 (.24), без респинов (.0)), но он не может, потому что пакет ips-encration, который является S11 (FCS) Установлена ​​версия SRU 9, и это ограничит developer-gnu соответствующей версией. Вы можете убедиться в этом, если запустите

pkg contents -m ips-incorporation

и найдите действие зависимости (типа = include) в fmri = group / feature / developer-gnu @ ...

Совет по ослаблению ограничений путем установки фасетов полезен для некоторых пакетов, но, как оказалось, не для этого. Кроме того, developer-gnu - это просто групповой пакет, который включает в себя несколько утилит разработки GNU поверх самого gcc, включая GNU binutils, GNU make, autotools, gdb и т. Д. В лучшем мире вы могли бы чтобы установить фасеты блокировки версий для каждого из этих пакетов в значение false и просто установить их независимо, игнорируя групповой пакет. Но вы все равно столкнетесь с проблемой, что версии этих пакетов в репо, которые у вас есть, были созданы для версии ОС, которая новее, чем та, которую вы установили, и поэтому их зависимости также связаны с этими более новыми версиями. Единственный вариант, кроме обхода системы упаковки, - это обновить или получить репозитории S11 + SRU.

Если это серийная коробка SPARC T4 с Solaris 11 на ней. Если бы я был в вашей ситуации, я бы не стал связываться с ней и получить поддержку Oracle. Особенно в случае сомнений при установке одного из важных системных аспектов в качестве системных заголовков для "gcc", находясь в состоянии "I'm not at all familiar with how solaris package management works." Пожалуйста, сделайте это, и вы сэкономите много времени себе и другим людям.

Ну во-первых иди прочитай ответ Данилы.
Если вы не знакомы с управлением пакетами Solaris, не возитесь с ним в производственной системе - сделайте, как он сказал, и попросите кого-нибудь, кто знает, что они делают, вам помочь.


С этим в стороне:

Ваш первый вариант - скажите Solaris, чтобы он не был таким придирчивым зверьком в отношении ограничений версии при включении.
(Для получения более подробной информации о регистрации, проверьте это сообщение в блоге.)

Другой вариант - загрузить и установить сторонние пакеты компилятора из другого источника, например sunfreeware.com. Поскольку вы говорите, что у вас нет доступа в Интернет, вам придется записать их на CD / DVD / USB-накопитель / какой-либо другой носитель, который вы можете подключить к своей системе.
Как правило, система без доступа в Интернет имеет другие ограничения безопасности, и ответственные лица будут неодобрительно относиться к установке неаудированных сторонних пакетов.

Это подводит нас к варианту 3: установить компилятор в другой системе, собрать там свое программное обеспечение, упаковать его и установить на этот компьютер.
В зависимости от причины, по которой у вас нет компилятора, это может быть лучшим вариантом ...