「Makepkg-optimize」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(makepkg-optimize とバックエンドのインストール: makepkg-optimize depends=('pacman-git'))
タグ: visualeditor-switched
(英語版と同期: nodejs-svgoがsvgoに改名)
13行目: 13行目:
 
== インストール ==
 
== インストール ==
   
{{AUR|makepkg-optimize}} をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: {{Pkg|openmp}}, {{Pkg|upx}}, {{Pkg|optipng}}, {{AUR|nodejs-svgo}}。
+
{{AUR|makepkg-optimize}} をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: {{Pkg|openmp}}, {{Pkg|upx}}, {{Pkg|optipng}}, {{AUR|svgo}}。
   
 
=== 設定 ===
 
=== 設定 ===
45行目: 45行目:
 
$ arch-nspawn "$CHROOT"/root pacman -S openmp upx optipng
 
$ arch-nspawn "$CHROOT"/root pacman -S openmp upx optipng
   
それから {{AUR|pacman-git}}、 {{AUR|makepkg-optimize}} と {{AUR|nodejs-svgo}} を[[Arch User Repository#ビルドファイルを獲得|ダウンロード]]・[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]してください。
+
それから {{AUR|pacman-git}}、 {{AUR|makepkg-optimize}} と {{AUR|svgo}} を[[Arch User Repository#ビルドファイルを獲得|ダウンロード]]・[[en2:DeveloperWiki:Building in a clean chroot#Building in the chroot|ビルド]]してください。
   
 
chroot でインストールするには、以下のようにパッケージファイルをコピーしてインストールします:
 
chroot でインストールするには、以下のようにパッケージファイルをコピーしてインストールします:
   
# cp nodejs-svgo-1.1.1-1-any.pkg.tar.xz "$CHROOT"/root/root/
+
# cp svgo-1.2.2-2-any.pkg.tar.xz "$CHROOT"/root/root/
$ arch-nspawn "$CHROOT"/root pacman -U /root/nodejs-svgo-1.1.1-1-any.pkg.tar.xz
+
$ arch-nspawn "$CHROOT"/root pacman -U /root/svgo-1.2.2-2-any.pkg.tar.xz
 
{{Warning|上記の操作を行うと完全な chroot ではなくなります。}}
 
{{Warning|上記の操作を行うと完全な chroot ではなくなります。}}
   

2019年6月1日 (土) 00:27時点における版

関連記事

makepkg-optimizeAURpacman-gitAUR を補助する buildenvtidy スクリプト集です。build()package() で最適化をかけるマクロを提供します。

ノート: Arch User Repository の他のパッケージと同じく、makepkg-optimizeAUR に公式サポートはありません。AUR ページのコメント欄を使ってください。

インストール

makepkg-optimizeAUR をインストールしてください。また、最適化を行うためにバックエンドをインストールしてください: openmp, upx, optipng, svgoAUR

設定

makepkg-optimizeAUR は現在の makepkg の設定から /etc/makepkg-optimize.conf という名前の 設定ファイル を生成します。

このファイルにはコンパイルフラグ, ビルド環境, パッケージオプション, パッケージ出力, 圧縮デフォルト の追加オプションが記載されています。デフォルトでは全て無効となっています。

警告: 最適化によってはパッケージのビルドが上手くいかなくなることがあり、過最適化がパフォーマンスの劣化を引き起こしたりセグメンテーション違反が発生する可能性もあります。

最適化されたパッケージのビルド

最適化の設定を行ったら、ビルドするときに設定ファイルを指定してください:

$ makepkg --config /etc/makepkg-optimize.conf
ノート: Profile-guided optimization ではパッケージを2回ビルド・インストールする必要があります。最初 $PROFDEST/pkgbase.gen にプロファイルを生成して、それからプロファイルを $PROFDEST/pkgbase.used に移動して適用します。

chroot で最適化されたパッケージのビルド

また、makepkg-optimize を使って chroot の中で最適化済みのパッケージをビルドすることもできます。

Chroot の設定

chroot をセットアップした後、設定が必要です。

makepkg-optimize とバックエンドのインストール

まず、chroot に最適化マクロのバックエンドをインストール:

$ arch-nspawn "$CHROOT"/root pacman -S openmp upx optipng

それから pacman-gitAURmakepkg-optimizeAURsvgoAURダウンロードビルドしてください。

chroot でインストールするには、以下のようにパッケージファイルをコピーしてインストールします:

# cp svgo-1.2.2-2-any.pkg.tar.xz "$CHROOT"/root/root/
$ arch-nspawn "$CHROOT"/root pacman -U /root/svgo-1.2.2-2-any.pkg.tar.xz
警告: 上記の操作を行うと完全な chroot ではなくなります。

PGO キャッシュの作成

PGO を使うときは、プロファイル を保存するために chroot の中と外、同じ場所にフォルダを作成します:

# mkdir -m 777 {"$CHROOT"/root,}/mnt/pgo

それから $CHROOT/root/etc/makepkg-optimize.conf を編集して PROFDEST=/mnt/pgo を設定してください。

chroot を使う

ノート: chroot を アップデート するとき、AUR パッケージは手動で更新が必要です。

パッケージのビルド

まず、$CHROOT/root/etc/makepkg-optimize.conf を編集して最適化を選択してください。

ビルドするときに、makepkg に設定ファイルを指定してください:

$ makechrootpkg -c -r "$CHROOT" -- --config /etc/makepkg-optimize.conf
PGO でビルド

最初のビルドが終わったら、PGO キャッシュをバインド:

# mount -o bind {,"$CHROOT"/root}/mnt/pgo
# mount -o bind "$CHROOT"/{root,"$USER"}/mnt/pgo
ヒント: fstab を使って起動時に上記のフォルダを バインド することもできます。

パッケージをインストールしてテスト実行してみてください。

ノート: プログラムの exit() 時にプロファイルは作成されます。systemd などのデーモンの場合、プロファイルを作成するには再起動が必要となります。再起動したら、再ビルドする前に PGO キャッシュを再バインドしてください。

ソフトウェアを一通り使ったら、パッケージを再ビルド・再インストールしてください。