顧客のネットワークに展開され、インターネットにアクセスできなくなったSPARC T4-1(Solaris 11)マシンでCプログラムをコンパイルする必要があります。元々はセットアップ中、コンパイル中です。ツールもシステムヘッダーもインストールされていませんが、Cプログラムのコンパイルに問題があります。
インターネットの指示に従ってローカルリポジトリをインストールしましたが、pkg pubisher
は次のように表示されます。
# pkg publisher
PUBLISHER TYPE STATUS URI
solaris Origin online file:///export/repoSolaris11/repo/
しかし、gcc(パッケージgcc-dev
、私は思う?)をインストールしようとすると、パッケージマネージャー(This version is excluded by installed incorporation
)からの苦情がたくさんあり、元々は工場だったからだと結論付けました。インストール(マシンはOracleからセットアップされたもので、変更されていません)、ローカルリポジトリを追加しようとしましたが、バージョンが一致していません。完全なインストールの試み: http://Pastebin.com/m3wazmU7
Cコンパイラをインストールする別の方法はSolarisStudio IDE(DVD))であると考えました。現在、マシンにはcc
がありますが、システムがありません。ヘッダーがあるため、単純なhelloworldでもコンパイルできません。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/[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
私はsolarisパッケージ管理がどのように機能するかをまったくよく知らないので、これらの組み込みメッセージを取り除く方法があるのだろうか?または、適切なヘッダーファイルをどこかから解凍し、それらのヘッダーに対してプログラムをコンパイルすることはできますか?
ヒントをありがとう
私はダニラに反対することはできません-あなたがサポート契約を結んでいるなら、それを使ってください。実際、これを使用してSolaris11からSolaris11.1にアップグレードすることをお勧めします。
とはいえ、問題は、アタッチしたローカルリポジトリがインストール済みのシステムよりも新しく、一致するパッケージのセットがないことです。 Solaris 11.1リポジトリISOではなく、Solaris 11リポジトリISO(およびすべてのSRU)を取得する必要があります。
これはエラーメッセージの重要な部分です。
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
つまり、パッケージ「developer-gnu」(「gcc-dev」の新しい名前)のバージョンはインストールできません。 1つしか見つかりませんでした(S11.1バージョン-「0.5.11」はすべてのSolaris 11システムパッケージのバージョンであり、ダッシュの後のブランチバージョンは「Solaris11」(0.175)「アップデート1」(。1)と表示されます、SRUなし(.0)、特別なプラットフォームなし(.0)、ビルド24(.24)、リスピンなし(.0))、ただし、S11(FCS)であるips-incorporationパッケージのためにできません。 SRU 9バージョンがインストールされているため、developer-gnuは対応するバージョンに制限されます。あなたが走ればそれを正確に見ることができます
pkg contents -m ips-incorporation
fmri = group/feature/developer-gnu @ ...で(type = incorporateの)依存アクションを探します。
ファセットを設定して制約を緩和するためのアドバイスは、一部のパッケージには役立ちますが、結局のところ、これは役に立ちません。さらに、developer-gnuは、GNU binutils、GNU make、autotools、gdbなどのGNU開発ユーティリティをgcc自体の上に取り込むグループパッケージです。より良い世界では、これらの各パッケージのバージョンロックファセットをfalseに設定し、グループパッケージを無視して、それらを個別にインストールすることができます。ただし、リポジトリ内のこれらのパッケージのバージョンが、インストールしたものよりも新しいバージョンのOSに対して構築されているため、それらの依存関係もこれらの新しいバージョンに対してであるという問題が発生します。パッケージングシステムを回避する以外の唯一のオプションは、アップグレードするか、S11 + SRUリポジトリを取得することです。
これが本番の場合SPARC Solaris 11が搭載されたT4ボックス。私があなたの状況にあった場合、私はそれを台無しにせず、Oracleサポートを取得します。特に疑わしい場合は"I'm not at all familiar with how solaris package management works."
の状態で、「gcc」のシステムヘッダーとして重要なシステムの側面の1つをインストールしている間、それを実行してください。そうすれば、自分自身と他の人の時間を大幅に節約できます。
さて、まず第一に ダニラの答えを読んでください 。
Solarisパッケージ管理に慣れていない場合は、本番システムでそれをいじくり回さないでください。彼が言ったように、彼らが何をしているのかを知っている人に助けを求めてください。
それが邪魔にならないように:
あなたの最初のオプションは 法人化におけるバージョン制限についてそれほどうるさい獣にならないようにSolarisに伝えてください 。
(法人化の詳細については、 このブログ投稿をチェックしてください 。)
もう1つのオプションは、sunfreeware.comなどの別のソースからサードパーティのコンパイラパッケージをダウンロードしてインストールすることです。あなたがインターネットにアクセスできないと言うように、あなたはそれらをCD/DVD/USBスティック/あなたのシステムに接続できる他のいくつかのメディアに入れる必要があります。
一般に、インターネットにアクセスできない種類のシステムには他のセキュリティ上の制約があり、責任者は未監査のサードパーティパッケージのインストールに眉をひそめるでしょう。
これにより、オプション3が表示されます。コンパイラを他のシステムにインストールし、そこでソフトウェアをビルドしてパッケージ化し、このマシンにインストールします。
コンパイラがない理由によっては、これが最良のオプションかもしれません...