普段は1コアでケチケチ運用しているクラウドサーバーで「よし!emergeするぞ!」と思ってせっかくCPUコア数を増やした...でもjob数の設定が1コアのときのままだった。
そんな悲しい思いをしない方法。
make.conf
にはMAKEOPTS
を書かない。
[root@localhost] # grep -c MAKEOPTS /etc/portage/make.conf
0
そして/etc/profile.d/
の下に適当な名前で のようなスクリプトを書く。
[root@localhost] # cat /etc/profile.d/makeopts.sh
#!/bin/bash
export MAKEOPTS="-j$(($(nproc)+1))"
そうするとemerge
する際のjob数がコア数+1になる。
4コアのインスタンスならjob数が5に!
[root@localhost] # nproc
4
[root@localhost] # emerge --info | grep MAKEOPTS
MAKEOPTS="-j5"
8コアのインスタンスならjob数が9に!
[root@localhost] # nproc
8
[root@localhost] # emerge --info | grep MAKEOPTS
MAKEOPTS="-j9"
これでたくさんemergeできますね!
ちなみにgenkernel
でカーネルをビルドする際はこんな感じで。
[root@localhost] # genkernel --makeopts="-j$(($(nproc)+1))" all
* Gentoo Linux Genkernel; Version 3.4.49.2
* Running with options: --makeopts=-j5 all
* Using genkernel.conf from /etc/genkernel.conf
* Sourcing arch-specific config.sh from /usr/share/genkernel/arch/x86_64/config.sh ..
* Sourcing arch-specific modules_load from /usr/share/genkernel/arch/x86_64/modules_load ..
* Linux Kernel 4.0.5-gentoo for x86_64...
* .. with config file /etc/kernels/kernel-config-x86_64-4.0.5-gentoo
* kernel: Using config from /etc/kernels/kernel-config-x86_64-4.0.5-gentoo
* Previous config backed up to .config--2015-07-01--03-59-09.bak
* kernel: >> Running mrproper...
...(snip)