Solaris11とips、以前のcheckinstallスクリプトを設定または置き換える方法は?

Solaris11とips、以前のcheckinstallスクリプトを設定または置き換える方法は?

私は古い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が終了していない場合にのみ失敗します)。

おすすめ記事