OpenIndianaに関する話題

オープンソースのSolaris互換OSであるOpenIndianaに関する話題(設定等)のトピックです。

OpenIndianaでネットワークを手動で設定する方法(2023.10で行った内容)。
(1)インターフェースを確認します

# dladm show-phys
LINK         MEDIA                STATE      SPEED    DUPLEX   DEVICE
e1000g0      Ethernet             up         1000     full     e1000g0
e1000g1      Ethernet             up         1000     full     e1000g1

(2)nwamを停止します。

# svcadm disable svc:/network/physical:nwam
# svcadm enable svc:/network/physical:default

(3)インターフェースを削除します

# ipadm delete-ip e1000g0
# ipadm delete-ip e1000g1

(4)インターフェースを作成します

# ipadm create-ip e1000g0
# ipadm create-ip e1000g1

(5)インターフェースe1000g0にIPv4アドレスを割り当てます

# ipadm create-addr -T static -a IPv4アドレス/プレフィックス e1000g0/ipv4

(6)インターフェースe1000g1にIPv6のリンクローカルアドレスを割り当てます
# ipadm create-addr -T addrconf e1000g1/ipv6
(7)インターフェースe1000g1にIPv6のアドレスを割り当てます。このときに指定するaddrobjはリンクローカルアドレスを割り当てたものとは別にします

# ipadm create-addr -T static -a local=IPv6のアドレス/プレフィックス e1000g1/ipv6a

(8)ネットワークを再起動します

# svcadm disable svc:/network/physical:default
# svcadm enable svc:/network/physical:default

(9)IPv4のデフォルトルートを設定します
# route -p add default Gatewayアドレス
(10)IPv6のデフォルトルートを設定します(e1000g1にデフォルトが設定されていれば不要かも)
# route add -inet6 default Gatewayアドレス

以上でネットワークの手動設定は終わりです。

パッケージAをアンインストールして、パッケージBをインストールしたいのだが、Aをアンインストールした時点でパッケージCが自動的にインストールされてしまうことがある。
そのような時はオプションとして“–reject”を使う。

# pkg install --reject A B

例として私がグラフィックドライバーをnvidia-390からnvidia-340にダウングレードした時の出力を示しておく(nvidia-390をアンインストールするとnvidia-470が自動的にインストールされ、逆にnvidia-470をアンインストールするとnvidia-390が自動的にインストールされる)。

# pkg install --reject nvidia-390 nvidia-340
     削除するパッケージ:   1
 インストールするパッケージ:   1
      ブート環境の作成:  はい
バックアップブート環境の作成: いいえ

ダウンロード                                 パッケージ          ファイル      転送 (MB)      速度
完了                                       2/2         71/71    60.4/60.4  7.2M/s

フェーズ                                              項目
古いアクションを削除しています                                43/43
新しいアクションをインストールしています                           91/91
変更されたアクションを更新しています                             66/66
パッケージ状態データベースを更新しています                             完了
パッケージキャッシュを更新しています                               1/1
イメージ状態を更新しています                                    完了
スピード検索データベースを作成しています                              完了

A clone of openindiana-2025:09:12-4 exists and has been updated and activated.
On the next boot the Boot Environment openindiana-2025:09:12-5 will be
mounted on '/'.  Reboot when ready to switch to this updated BE.

“–reject”オプションについては以下のOracleのSolarisドキュメントの「パッケージの拒否」を参照。

OpenIndianaじゃなくてSolaris11.4(x86)の話。

glib-2.86.0を作るときのmeson setupのオプション。

meson setup -Dxattr=false -Ddtrace=false -Dintrospection=disabled -Dselinux=disabled -Dinstalled_tests=true _build

各オプションの意味は下記ウェブページで。

あと、meson.buildファイル内のptraceの部分はまるっとコメントにしておく。

gio/gmemorymonitorbase.cのg_memory_monitor_base_query_mem_ratio (void)の中の#ifdef~#elseまで、まるっとコメントアウト。そして#endifもコメントアウト。言い換えればreturn -1.0;だけ活かしておく。

#linux向けに書かれているので、sysinfoが全然違う。頑張って修正するか、まるっとコメントアウトするか。

後の流れはこんな感じ。

meson compile -C _build
meson test -C _build
meson install -C _build

ついでにSolaris11.4でMATEをmakeするときのautogen.shの引数のメモ。

bash ./autogen.sh MAKE=“gmake” PKG_CONFIG_PATH=“/usr/lib/64/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig” SHELL=/bin/bash

行したのはSolaris11.4でですが)誤って実行ファイル等を消してしまった場合の対処方法。
/usr/bin/以下のコマンドとかシステムライブラリとかを誤って消してしまった場合、パッケージを再インストールする。
まず、“pkg verify -v”を実行してパッケージの検証を行う。

pkg verify -v
パッケージ                                                                    ステータス
pkg://solaris/archiver/gnu-tar                                              OK
pkg://solaris/audio/audio-utilities                                         OK
<省略>
pkg://solaris/data/sgml-common                                           ERROR
        file: etc/sgml/catalog
                エラー: mode: 0444 should be 0644
                編集可能なファイルが変更されています
pkg://solaris/data/shared-mime-info                                         OK
<省略>

ステータスがエラーになっているパッケージを“pkg fix <パッケージ名>で再インストールする。

pkg fix pkg://solaris/data/sgml-common
修正するパッケージ:   1
ブート環境の作成: いいえ
バックアップブート環境の作成:  はい

修復しています: pkg://solaris/data/sgml-common@0.6.3,11.4-11.4.81.0.0.193.0:20250321T182923Z
パッケージ                                                                    ステータス
pkg://solaris/data/sgml-common                                           ERROR
file: etc/sgml/catalog
エラー: mode: 0444 should be 0644
ダウンロード                                 パッケージ          ファイル      転送 (MB)      速度
完了                                       1/1           1/1      0.0/0.0    9B/s

フェーズ                                              項目
変更されたアクションを更新しています                               1/1
パッケージ状態データベースを更新しています                             完了
パッケージキャッシュを更新しています                               0/0
イメージ状態を更新しています                                    完了
スピード検索データベースを作成しています                              完了
パッケージキャッシュを更新しています                               2/2

再度“pkg verify -v”を実行してエラーが無くなったことを確認。

詳細は以下のウェブページを参照。