Post date: 2019/05/10 13:22:00
http://www.klayout.org/downloads/master/ からバイナリを入れようとしたが、システムにruby(CentOS7のrubyはバージョンが2.0と古い?)を要求され、気分が悪いので(というかchefで提供されるものを使いたいので)、ソース入れる
https://github.com/KLayout/klayout を git cloneする
dvbブランチを使うので git checkout dvb
オプションを指定してbuild
dvbでは、qt5がデフォルトになったようだがqt4を使う
rubyは、chefのもの、pythonはanacondaのoを指定
./build.sh -qmake /bin/qmake-qt4 -ruby /opt/chefdk/embedded/bin/ruby -python /opt/anaconda3/bin/python3.6
anacondaのpython3.6では、以下のエラーを解消できなかった:
/opt/anaconda3/lib/libpng16.so.16: `inflateValidate@ZLIB_1.2.9' に対する定義されていない参照です
そこで、pythonを/usr/bin/python3.6に変えた。yum install python36-libs python36-develが必要だった。また、pythonのlibをリンクするとき、/usr/lib以下のを取りに行ってエラーになるので、-pylibを指定したらうまく行った。
./build.sh -qmake /bin/qmake-qt4 -ruby /opt/chefdk/embedded/bin/ruby -python /usr/bin/python3.6 -pylib /usr/lib64/libpython3.6m.so.1.0
2019-6-5追記
上記buildでは、バイナリパスを設定していないので/usr/local/src/klayout/bin-release/klayoutにインストールされる。実行には、LD_LIBRARY_PATHを以下のように設定する必要あり:
export LD_LIBRARY_PATH=/opt/chefdk/embedded/lib:/usr/local/src/klayout/bin-release
2019-8-15追記
今回、同じ./build.sh -qmake /bin/qmake-qt4 -ruby /opt/chefdk/embedded/bin/ruby -python /usr/bin/python3.6 -pylib /usr/lib64/libpython3.6m.so.1.0
でインストールしたが、/usr/bin/klayoutにバイナリができた。LD_LIBRARY_PATHをは必要なので、/usr/local/bin/klayoutを以下のように設定した:
LD_LIBRARY_PATH=/opt/chefdk/embedded/lib /usr/bin/klayout
http://www.klayout.org/downloads/master/ からバイナリをwget
dpkg -i klayout_0.26-1_amd64.debを実行
ubuntu16.04の場合、ruby2.3が必要だとわかったので、まっ、いいかということで以下で入れる。
apt-get install ruby2.3 libruby2.3
2019-10-11追記
理由:19.04では、pythonのデフォルトが3.7だが、ubuntu 18.04用バイナリはlibpython3.6にdependしていて、3.6をこのために入れるとトラブルが予想されるため。klayoutをソースから入れる場合は、>3ならよい。
Python: >= 2.7.2 or 3.x (preferred).
1.ubuntuに必要なパッケージは以下の通り:
For Ubuntu:
C++ toolchain: gcc, g++ and make
Qt including development tools: libqt4-dev-bin and libqt4-dev
Ruby: ruby and ruby-dev
Python: python3 and python3-dev
zlib: libz-dev
なので、
apt-get install gcc g++ make libqt4-dev-bin libqt4-dev python3-dev libz-dev
rubyは、chef-clientに付属するruby 2.6.4p104 (2019-08-28 revision 67798) [x86_64-linux] を使う。
2.ソースをgit cloneすると、以下のバージョンだった(2019-10-11)
Matthias Köfferlein <matthias@koefferlein.de> Date: Thu Oct 3 14:31:36 2019 +0200
Merge pull request #367 from KLayout/pcb-l2n
Enabled net tracing for heavily decomposed polygons
3.コンパイルは