Open satokaz opened 3 years ago
Solaris 11.4 SRU 51 で python 3.9 を default にする手順。 mediator は、下記 2 つがある:
$ pkg mediator -a python
MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
python vendor 3.7 vendor
python system 3.9 system
python system 2.7 system
# pkg set-mediator -V 3.9 python3
Packages to change: 3
Mediators to change: 1
Create boot environment: No
Create backup boot environment: Yes
PHASE ITEMS
Removing old actions 2/2
Updating modified actions 8/8
Updating package state database Done
Updating package cache 0/0
Updating image state Done
Creating fast lookup database working /
Creating fast lookup database Done
Updating package cache 2/2
# pkg set-mediator -V 3.9 python
変更するパッケージ: 7
変更するメディエータ: 1
ブート環境の作成: いいえ
バックアップブート環境の作成: はい
フェーズ 項目
古いアクションを削除しています 2/2
変更されたアクションを更新しています 10/10
パッケージ状態データベースを更新しています 完了
パッケージキャッシュを更新しています 0/0
イメージ状態を更新しています 完了
スピード検索データベースを作成しています 完了
パッケージキャッシュを更新しています 2/2
oci-cli 内部で利用している pyca/cryptography (38.0.4)の build 、35.0.0 から Rust 必須(1.48.0 以降)になっている この記事を書いた Solaris 11.4 SRU 28 の環境は、何かのタイミングで既に rustc と cargo パッケージがインストールされていたので大丈夫だった感じ
Solaris 11.4 SRU 52 $ oci -version 3.22.0
# pkg install developer/rust/rustc
# pkg install developer/rust/cargo
SPARC な Solaris 11.4 SRU 54 環境でも oci-cli が欲しかったので。
$ uname -a
SunOS solaris-t4-4 5.11 11.4.54.138.1 sun4v sparc sun4v non-virtualized
mediator に default@1.1
がいない。。。
とりあえず、手をつけず。
$ pkg mediator -a openssl
MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
openssl vendor vendor default@1.0
openssl vendor vendor default
openssl system system fips-140@1.0
openssl system system fips-140
rustc と cargo を追加して、
# pkg install developer/rust/rustc
# pkg install developer/rust/cargo
環境変数で OpenSSL 1.1 を見つけれるようにして、
$ export PKG_CONFIG_PATH=/usr/openssl/1.1/pkgconfig/64/:/usr/lib/64/pkgconfig
$ export CFLAGS="$(pkg-config --cflags libffi --libs libcrypto libssl)"
$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
できた。
kazus@solaris-t4-4~$ oci -v
3.23.0
https://blogs.oracle.com/solaris/post/update-how-to-install-oci-cli-on-oracle-solaris-114
手元の環境で、OCI CLI を動かすためのメモ。主に Solaris 11.4
macOS
command line developer tools が必要になるので、必ずインストールしておく:
Apple M1 機 では、arm64 build できないので、
arch -arch x86_64 /bin/zsh -l
とかして、x86_64 でインストールを実行すること。homebrew でも、インストール可能。x86_64 でも arm64 でもインストールできる。
Solaris 11.4 SRU 54
下記に該当しない場合は、https://github.com/satokaz/hitorigoto/issues/21#issuecomment-1436657724 でインストール可能。
過去に、mediator を変更している場合は注意。
pkg update をしても、最後に下記のメッセージを出力して update が完了しない:
pkg set-mediator してたのが邪魔するので、これを unset-mediator しろとのこと。
Solaris 11.4 SRU 28
動かせた。
pkg set-mediator
で、利用する OpenSSL を 1.1.1d に切り替えてあげれば、1.0.2 利用時の Warning とは付き合う必要がないことがわかった。mediator を openssl 1.1.1 を利用する
default@1.1
に切り替え、PKG_CONFIG_PATH 環境変数をセットしてインストールを実行:Solaris 11.4 の OpenSSL については、下記の記事を参照。Solaris 11.4 SRU 21 から、OpenSSL 1.1.1 が提供されるようになっていた。
Solaris 11 の IPS には、あるアプリケーションの異なる実装へのリンクのセットを提供する mediation と言う考え方を提供する。 OpenSSL は、この medation がセットされており、1.0.2/1.1.1d/fips-140 対応と 3 つの mediator を持っている。 と言うわけで、openssl の mediator を OpenSSL 1.1.1 に切り替えて build してしまえば良い。と言うのを知った。 勉強になりました。
その後、下記の環境変数をセットして oci コマンドを実行:下記の CryptographyDeprecationWarning は、Solaris 11.4 で提供される OpenSSL がアップデートされるまでは消えない:
https://github.com/oracle/solaris-userland/tree/master/components/openssl/openssl-1.1 を見ると、
SRU29SRU 30 あたりで 1.1.1i に update されるかな?