GCC отсутствует в Solaris 11, а сервер уже развернут (нет доступа к Интернету)
У меня есть особая проблема, когда сервер уже развернут, и он больше не подключен к сети. Для первоначальной цели не требовалось никаких инструментов компиляции C/C++, и поэтому они никогда не устанавливались.
я проверил /usr/sfw/bin
, но на самом деле они отсутствуют оттуда..
Я не очень знаком со средой Solaris, но я не могу найти GCC в качестве "устанавливаемого пакета" (аналогично, например, dpkg для debian) для Solaris 11. Хотя, кажется, есть вещи для старых сред Solaris. Есть ли какой-нибудь способ пост-установить эти инструменты без использования интернет-соединения и менеджера пакетов? Например, есть ли где-нибудь образ DVD, который я мог бы использовать в качестве источника для менеджера пакетов?
Я хотел бы запустить программу, написанную на C++, но я не могу скомпилировать код на моей машине, так как я использую 64-битную машину x86 Linux.
У меня есть доступ к более старой машине Solaris 8, которая в порядке, и я использовал статический бинарный файл (использовал gcc 3.8
). Программа запускается, но при форматировании строк наблюдается странное поведение, которое не выполняется должным образом - такого поведения не наблюдается на хосте Solaris 8.
Я могу скопировать библиотеки с компьютера, например, для создания среды кросс-компиляции, но я не уверен, что это так просто. Из динамически связанного файла я вижу, например, что я ссылаюсь на libstdC++, но этого не хватает на целевой машине.
Поэтому мне интересно, могу ли я создать правильную среду кросс-компиляции?
5 ответов
/usr/sfw/bin
это в комплекте gcc
путь с Солярисом 10. На Солярисе 11.1, gcc
при установке доступен непосредственно в /usr/bin
в качестве символической ссылки, которая указывает на /usr/gcc/<version>/bin/gcc
,
Теперь существует формат данных на диске для пакетов ips (.p5p
файлы), но я бы предложил загрузить весь репозиторий (ищите образ репозитория Oracle Solaris 11.1 на странице загрузки Solaris 11.1) и создать свой собственный ips-сервис. Смотрите этот блог для деталей. Это позволило бы установить любой пакет gcc
зависит от других пакетов, которые могут отсутствовать в вашей задаче.
Имейте в виду, что если вы находитесь в локальной зоне (вы?), То вам на самом деле не нужен доступ к Интернету, чтобы использовать pkg
команды или, вернее, эта зона не нуждается. Причина в том, что IPS (при использовании внутри зон) автоматически использует IPS глобальной зоны в качестве прокси-сервера репо. Но, конечно, если даже глобальная зона не имеет доступа к Интернету, вам нужно следовать ответу jlliagre.
Вы можете посмотреть в этой публикации, что на самом деле нужно установить на Solaris 11. Это будет пара pkg
команды и все готово!
Одним из вариантов является получение необходимых пакетов с сайта www.UNIXPackages.com (требуется подписка), и отдельные файлы можно загрузить на одну машину (в вашем случае Linux), записать на DVD, а затем переместить и установить на Solaris 11 машина.
Не требуется подключение к Интернету для машины Solaris 11. Обновления и другие дополнения будет легко сделать в будущем.
Это одно из преимуществ пакетов UNIX по сравнению с IPS и OpenCSW. Не стесняйтесь присылать техническую поддержку по вопросам на unixpackages dot com.
У меня была похожая проблема, и я использовал другую систему, которая была подключена к Интернету и репо поддержки. Краткое описание шагов следующее. Однако учтите, что у вас могут возникнуть проблемы с зависимостями и версиями, поэтому подход reco'd / Предпочтительный заключается в создании полного локального сервера репо, особенно если ожидается, что ваши системы останутся отключенными от репо поддержки.
// Получить iperf pkg и сохранить как /tmp/iperf.p5p
pkgrecv -s https://pkg.oracle.com/solaris/support/ -d /tmp/iperf.p5p -a -r pkg://benchmark/iperf
// Проверяем содержимое пакета с помощью:
pkgrepo -s /tmp/iperf.p5p list
// или вы можете использовать:
pkg list -f -g /tmp/iperf.p5p
// Мне пришлось отключить издатель Solaris для установкиpkg set-publisher --disable solaris
// Sneaker-net файл p5p в отключенную систему
// Устанавливаем pkg(s):
pkg install -g file:///tmp/iperf.p5p benchmark/iperf
Мне кажется, вы можете получить доступ к репозиторию пакетов Solaris 11 в Интернете, и вы можете скачать пакеты там. Редактировать: Я исправлен (спасибо @alanc), вы можете загружать только "заголовки" для пакетов, поэтому единственный вариант - получить пакеты в противном случае.
Я предполагаю, что есть способ указать менеджеру пакетов Solaris установить один файл с некоторыми параметрами командной строки. Проблема с этим подходом заключается в обнаружении всех зависимостей, которые все еще могут отсутствовать, без итеративной загрузки, попытки установки и повторного поиска следующей.
Я также предположил бы, что есть образы DVD, которые содержат исходные версии всех необходимых пакетов, и gcc - это то, что я ожидаю стать частью этого.