本文記錄在ubuntu下運行OpenSystemArchitect錯誤的解決方法。
拋棄win7將系統換成了64位的ubuntu,最大的問題就是不少windows下的軟件都用不了,好比powerdesigner。
有個開源的軟件 叫OpenSystemArchitect聽說可替代,因而決定試試。
OpenSystemArchitect的網站(直接打開主頁報403錯,那裏給的糾錯link又是主頁,遞歸的例子呃 - -||| )
http://www.codebydesign.com/SystemArchitect/downloads/
OpenSystemArchitect-4.0.0-linux-x86-64bit.tar.gz (http://www.codebydesign.com/SystemArchitect/downloads /OpenSystemArchitect-4.0.0-linux-x86-64bit.tar.gz)
注意主頁上有提到
C代碼
OSA requires that unixODBC be installed - preferrably with the GUI bits.
因此須要安裝unixodbc www.2cto.com
C代碼
sudo apt-get install unixodbc
運行軟件,會看到找不到libstdc++.so.5的錯誤:
error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
緣由是當前系統的gcc版本太新了,沒有這個老版本的庫。
到http://packages.debian.org/squeeze/amd64/libstdc++5/download 下載!
安裝libstdc++5
$ dpkg-deb -x libstdc++5_3.3.6-20_amd64.deb libstdc++5
$ sudo cp libstdc++5/usr/lib/libstdc++.so.5.0.7 /lib
$ cd /lib
$ sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5
再次運行程序,會看到 Segmentation fault 的錯誤輸出。
C代碼
$ strace ./OpenSystemArchitect
會發現一行
open("/etc/odbcinst.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
試着在/etc建一個空文件odbcinst.ini,軟件運行成功。