解決 lib*.so No such file

過程

今天裝了 Cisco Packet Tracer Linux 版,裝完執行跳一個 Starting Packet Tracer 7.2.1就消失了…。
ummm… 去翻了一下執行 packettracer 到底做了什麼事

#!/bin/bash

echo Starting Packet Tracer 7.2.1

PTDIR=/home/wildfootw/Programfile/Cisco_Packet_Tracer
export LD_LIBRARY_PATH=$PTDIR/bin
pushd $PTDIR/bin > /dev/null
./PacketTracer7 "$@" > /dev/null 2>&1
popd > /dev/null

看起來就是很簡單的執行 ./PacketTracer7 ,跑去直接執行看看。
error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory

少了個 library 阿,找了一下發現這個從 ubuntu 16.10 後就沒有再提供了。
ubuntu packages 找到之前提供的 library。
載下 libpng12-0_1.2.54-1ubuntu1.1_amd64.deb後用 ar x *.deb 解壓縮,複製 libpng12.so.0/Cisco_Packet_Tracer/bin 就成功了。

結論

算是學到了 LD_LIBRARY_PATH這個用法。

Leave a Reply

Your email address will not be published. Required fields are marked *