自分の環境は2,3ヶ月放置していたものなので,まずはOSv の最新のコードをpull してくる.
まぁ,pull してmake すればいいだろうと軽い気持ちでpull し始めたわけだが…
chroot 環境で
# cd /root/osv
# git pull
とりあえず何も考えずにmake 叩く
# make
ばばーん
...(中略)
make[1]: Entering directory `/root/osv/build/release.x64'
/root/osv/build.mk:928: *** Error: libstdc++.a needs to be installed.. Stop.
make[1]: Leaving directory `/root/osv/build/release.x64'
make: *** [all] Error 2
新しいライブラリが必要になっているみたいなので,それをインストール
# yum install libstdc++-static.x86_64
もう一回make
# make -j7
ばばーん(2回目)
...(中略)
CC libc/errno/strerror.o
/root/osv/libc/errno/strerror.c:12:45: fatal error: ../../musl/src/errno/__strerror.h: No such file or directory
#include "../../musl/src/errno/__strerror.h"
^
compilation terminated.
CC libc/locale/duplocale.o
make[1]: *** [libc/errno/strerror.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/root/osv/build/release.x64'
make: *** [all] Error 2
サブモジュールが増えてるらしい.
サブモジュールもちゃんとアップデートする.
# git submodule update --init --recursive
3度目の正直
# make -j7
ばばーん
...(中略)
make[3]: Leaving directory `/root/osv/modules/lua/build/luarocks-2.1.2'
out/bin/luarocks install luasocket 3.0-rc1
Warning: Failed searching manifest: Failed loading manifest: Failed extracting manifest file
Installing http://luarocks.giga.puc-rio.br/luasocket-3.0rc1-1.src.rock...
Using http://luarocks.giga.puc-rio.br/luasocket-3.0rc1-1.src.rock... switching to 'build' mode
Error: Failed unpacking rock file: /tmp/luarocks_luarocks-rock-luasocket-3.0rc1-1-2801/luasocket-3.0rc1-1.src.rock
make[2]: *** [out/lib/lua/5.2/socket/core.so] Error 1
make[2]: Leaving directory `/root/osv/modules/lua'
Traceback (most recent call last):
File "/root/osv/scripts/module.py", line 239, in <module>
args.func(args)
File "/root/osv/scripts/module.py", line 196, in build
make_modules(modules, args)
File "/root/osv/scripts/module.py", line 100, in make_modules
raise Exception('make failed for ' + module.name)
Exception: make failed for lua
make[1]: *** [process-modules] Error 1
make[1]: Leaving directory `/root/osv/build/release.x64'
make: *** [all] Error 2
要らないファイルが残ってたらしい.
とりあえずmake clean, git clean した.
# make clean
# git clean -xdf
で解決.
4度目の正直
# make -j7
でやっとビルドができた.
これでスタート地点.