2025年6月8日 星期日

Install Laker







1. Download

Please download newest lake installation file:

laker_2024.12_linux.tgz

2. Extract & Install

# tar xfva laker_2024.12_linux.tgz -C /opt/EDA

This will extract laker to /opt/EDA/laker directory

3. Config Env.

Add the following settings to /opt/EDA/bashrc_eda

Lakerbin="/opt/EDA/laker/cur/bin"

PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$Lakerbin"

LM_LICENSE_FILE=5229@lstn


4. Test

$ source /opt/EDA/bashrc_eda

$ laker &
/opt/EDA/laker/cur/platform/LINUX64/bin/laker: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory

We can search libpng12.so.0 in packages.debian.org. However, you can't find
any result. If you search libpng, you will get 
libpng16 file. We can also use the following command to find out what is 
installed in our system ?

$ dpkg -l | grep libpng
ii  libpng-dev:amd64                     1.6.39-2                        amd64        PNG library - development (version 1.6)
ii  libpng-tools                         1.6.39-2                        amd64        PNG library - tools (version 1.6)
ii  libpng16-16:amd64                    1.6.39-2                        amd64        PNG library - runtime (version 1.6)


Maybe we can use soft link to solve this problem like libdb ?

Let's go to shared library directory:

# cd /usr/lib/x86_64-linux-gnu/
/usr/lib/x86_64-linux-gnu# ls -l libpng*
-rw-r--r-- 1 root root 354122 1128  2022 libpng16.a
lrwxrwxrwx 1 root root     19 1128  2022 libpng16.so -> libpng16.so.16.39.0
lrwxrwxrwx 1 root root     19 1128  2022 libpng16.so.16 -> libpng16.so.16.39.0
-rw-r--r-- 1 root root 219056 1128  2022 libpng16.so.16.39.0
lrwxrwxrwx 1 root root     10 1128  2022 libpng.a -> libpng16.a
lrwxrwxrwx 1 root root     11 1128  2022 libpng.so -> libpng16.so

# /usr/lib/x86_64-linux-gnu# ln -s libpng16.so.16.39.0 libpng12.so.0
lrwxrwxrwx 1 root root     19  328 09:42 libpng12.so.0 -> libpng16.so.16.39.0
-rw-r--r-- 1 root root 354122 1128  2022 libpng16.a
lrwxrwxrwx 1 root root     19 1128  2022 libpng16.so -> libpng16.so.16.39.0
lrwxrwxrwx 1 root root     19 1128  2022 libpng16.so.16 -> libpng16.so.16.39.0
-rw-r--r-- 1 root root 219056 1128  2022 libpng16.so.16.39.0
lrwxrwxrwx 1 root root     10 1128  2022 libpng.a -> libpng16.a
lrwxrwxrwx 1 root root     11 1128  2022 libpng.so -> libpng16.so

Now, we can run laker again:

/opt/EDA/laker/cur/platform/LINUX64/bin/laker: /lib/x86_64-linux-gnu/libpng16.so.16: version `PNG12_0' not found (required by /opt/EDA/laker/cur/platform/LINUX64/bin/libQtGui.so.4)


We can see from the output that laker demands PNG12_0 not PNG16. Thus we really
need to install libpng12 file.

Before we find & install libpng12 file. We need to remove libpng12.so.0 
softlink.

/usr/lib/x86_64-linux-gnu# rm libpng12.so.0


=========================
How do we find libpng12 file ?

We can google libpng12 debian and it show that we can go to Debian archive 
website to download it. The directory is:
https://archive.debian.org/debian-security/pool/updates/main/libp/libpng/

And the download link is:
https://archive.debian.org/debian-security/pool/updates/main/libp/libpng/libpng12-0_1.2.50-2+deb8u2_amd64.deb

We can use wget command to download:

# wget https://archive.debian.org/debian-security/pool/updates/main/libp/libpng/libpng12-0_1.2.50-2+deb8u2_amd64.deb

And it will grab libpng12-0_1.2.50-2+deb8u2_amd64.deb

Normally, we can install a .deb file by using dpkg command:

# dpkg -i libpng12-0_1.2.50-2+deb8u2_amd64.deb
Selecting previously unselected package libpng12-0:amd64.
dpkg: regarding libpng12-0_1.2.50-2+deb8u2_amd64.deb containing libpng12-0:amd64, pre-dependency problem:
 libpng12-0 pre-depends on multiarch-support
  multiarch-support is not installed.

dpkg: error processing archive libpng12-0_1.2.50-2+deb8u2_amd64.deb (--install):
 pre-dependency problem - not installing libpng12-0:amd64
Errors were encountered while processing:
 libpng12-0_1.2.50-2+deb8u2_amd64.deb

The above message shows that libpng requires multiarch-support to install. 
However, we don't know whether multiarch-support depends on other packages
or not. 

Thus we need to extract and install libng manually.

# unar libpng12-0_1.2.50-2+deb8u2_amd64.deb 
libpng12-0_1.2.50-2+deb8u2_amd64.deb: Ar
  debian-binary  (4 B)... OK.
  control.tar.gz  (1303 B)... OK.
  data.tar.xz  (171112 B)... OK.

# cd libpng12-0_1.2.50-2+deb8u2_amd64
~/libpng12-0_1.2.50-2+deb8u2_amd64# tar xfva data.tar.xz 
./
./lib/
./lib/x86_64-linux-gnu/
./lib/x86_64-linux-gnu/libpng12.so.0.50.0
./usr/
./usr/share/
./usr/share/doc-base/
./usr/share/doc-base/libpng12
./usr/share/doc/
./usr/share/doc/libpng12-0/
./usr/share/doc/libpng12-0/changelog.Debian.gz
./usr/share/doc/libpng12-0/changelog.gz
./usr/share/doc/libpng12-0/README.gz
./usr/share/doc/libpng12-0/libpng-1.2.50.txt.gz
./usr/share/doc/libpng12-0/copyright
./usr/share/doc/libpng12-0/README.Debian
./usr/share/doc/libpng12-0/KNOWNBUG
./usr/share/doc/libpng12-0/ANNOUNCE
./usr/share/doc/libpng12-0/TODO
./usr/lib/
./usr/lib/x86_64-linux-gnu/
./lib/x86_64-linux-gnu/libpng12.so.0
./usr/lib/x86_64-linux-gnu/libpng12.so.0


We can see that there is a ./usr/lib/x86_64-linux-gnu/libpng12.so.0 exists.
This is what we need to run laker. We need to copy it to 
/usr/lib/x86_64-linux-gnu directory

~/libpng12-0_1.2.50-2+deb8u2_amd64# cp -a ./lib/x86_64-linux-gnu/libpng12.so.0* /usr/lib/x86_64-linux-gnu/

# ls -l /usr/lib/x86_64-linux-gnu/libpng12*
lrwxrwxrwx 1 root root     18  18  2016 /usr/lib/x86_64-linux-gnu/libpng12.so.0 -> libpng12.so.0.50.0
-rw-r--r-- 1 root root 158616  18  2016 /usr/lib/x86_64-linux-gnu/libpng12.so.0.50.0



After we installed libpng12 manually, we can run 

$ laker &

This time, laker should be able to executed successfully.




export PATH LM_LICENSE_FILE

沒有留言:

張貼留言