CentOS7/UBUNTUにKlayout 0.2.6をソースからインストール

Post date: 2019/05/10 13:22:00

LVSが提供されたv0.2.6をソースから入れる

http://www.klayout.org/downloads/master/ からバイナリを入れようとしたが、システムにruby(CentOS7のrubyはバージョンが2.0と古い?)を要求され、気分が悪いので(というかchefで提供されるものを使いたいので)、ソース入れる

  1. https://github.com/KLayout/klayout を git cloneする

  2. dvbブランチを使うので git checkout dvb

  3. オプションを指定して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

Ubuntu16.04には、バイナリをインストール

  1. http://www.klayout.org/downloads/master/ からバイナリをwget

  2. dpkg -i klayout_0.26-1_amd64.debを実行

    • ubuntu16.04の場合、ruby2.3が必要だとわかったので、まっ、いいかということで以下で入れる。

apt-get install ruby2.3 libruby2.3

lubuntu 19.04にはソースからインストール

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.コンパイルは