私は古いSolaris 10でこのスクリプトopenssh用の完全に自動化されたパッケージを作成します。 (私はsshdを直接更新してパーソナライズすることを好みます。)このスクリプトは私の家の状態でうまくいきます(おそらく問題を引き起こし改善することができますが、うまくいきます。もちろんテストする必要があります。危険にさらされています!)Solaris 11では新しいipsプログラムを使用するので、まずこの手順を実行して必要なディレクトリを作成しました。
mkdir -p $HOME/user/openssh/{src,binary}
srcディレクトリを入力してください
cd $HOME/openssh/src
最新のopensshをダウンロードしてgpgをチェックしてください。
wget https://ftp2.eu.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz
wget https://ftp2.eu.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz.asc
gpg -v *asc
次に、解凍、構成、作成、およびbindirにインストールします。
gtar -xvf *tar.gz
cd openssh-8.4p1
./configure --prefix=/opt/gm --sysconfdir=/etc/opt/gm/ssh --with-kerberos5=/usr --with-libedit=/usr --with-pam --with-solaris-contracts --with-solaris-projects --with-solaris-privs
gmake -j4
gmake install DESTDIR=$HOME/openssh/binary
その後、ips用のパッケージの作成を開始しました(パッケージをインストールするためのプライベートストアを構築しました)。
pkg contents -r -m ssh > openssh.mog
mogファイルを編集し、不要なバイナリと部分をすべて削除し(後で別のコマンドを使用して実行します)、いくつかの名前も変更しました(ssh公式パッケージとの競合を避けるために、network / sshがnetwork / gmopenshになりました) )。
vim openssh.mog
次に、バイナリのリストを生成します。
pkgsend generate binary |pkgfmt > openssh.p5m.1
メタデータを追加...
pkgmogrify -DARCH=`uname -p` openssh.p5m.1 openssh.mog |pkgfmt > openssh.p5m.2
世代を経て...
pkgdepend generate -md binary openssh.p5m.2 |pkgfmt > openssh.p5m.3
pkgdepend resolve -m openssh.p5m.3
次に、問題(権限、所有者など)があることを確認します。
pkglint -c ./lint-cache -r http://pkg.oracle.com/solaris/release openssh.p5m.3.res
数分後にopenssh.p5m.3.resのエラーを修正し、pkglintを再実行してください。
vim openssh.p5m.3.res
pkglint -c ./lint-cache -r http://pkg.oracle.com/solaris/release openssh.p5m.3.res
警告が返されない場合は、最後にパッケージをアップロードできます。先に述べたように、リポジトリを設定しました。
pkgsend publish -s http://localhost:9001 -d binary openssh.p5m.3.res
リポジトリを再構築してください。
pkgrepo rebuild -s http://localhost:9001
いよいよ設置する
pkg install gmopenssh
今問題は次のとおりです。以前のSolaris 10からパッケージをインストールすると、checkinstallスクリプトは私のマニフェストとメソッドを取得します(もちろん、Solaris 11パッケージでもそれを正しいディレクトリに追加して変更します)。インストール後、パッケージは正常に機能しますが、マニフェストをインポートしてサービスを手動で開始する必要があります。 ips設定で古いcheckinstallスクリプトを置き換える方法は?
ベストアンサー1
解決策を見つけてください。私のファイルopenssh.p5m.3.resには間違った(非標準)場所にマニフェストが含まれているため、Solarisはマニフェストのインポートと有効化を拒否します。
以前の構成
dir path=var/opt/gm/lib/svc/manifest owner=root group=sys mode=0755
dir path=var/opt/gm/lib/svc/manifestnetwork owner=root group=sys mode=0755
file var/opt/gm/lib/svc/manifest/network/gmopenssh.xml \
path=var/opt/gm/lib/svc/manifest/network/gmopenssh.xml owner=root group=sys \
mode=0444 restart_fmri=svc:/system/manifest-import:default
新しい設定
dir path=lib/svc/manifest owner=root group=sys mode=0755
dir path=lib/svc/manifest/network owner=root group=sys mode=0755
file lib/svc/manifest/network/gmopenssh.xml \
path=lib/svc/manifest/network/gmopenssh.xml owner=root group=sys \
mode=0444 restart_fmri=svc:/system/manifest-import:default
ワイヤー
restart_fmri=svc:/system/manifest-import:default
トリックを行います。
再アップロードしてpkg updateを実行すると、サービスが作成されアクティブになります(インストール前にsshdが終了していない場合にのみ失敗します)。