(其實沒擺脫, 工作上還是繼續用slackware)
OS裝起來後, 開始更新perl, 因為上面的版本是perl5.10.1,並非最新的perl5.12.2
當然更新前有看了看, Gtk2有裝起來, 好樣的, 省去一點功夫, 所以下命令把snapshot做起來再執行更新
$ sudo cpancpan > autobundlecpan > install J/JE/JESSE/perl-5.12.2.tar.gz
更新的時候正好是午餐前, 於是很不耐煩的大略看了一下configure prompt出來的問題就按按按
吃完午餐順便把模組重裝
$ sudo cpan cpan > install Bundle::Snapshot_yyyy_mm_dd_00
結果更新完一看, 搞笑, Gtk跑不起來了, 說@INC裡面找不到
想說原本可以跑的, 現在不行了, 要更新@INC該怎麼做呢?
答案是
recompile
要命!他已經寫進binary裡面了!
趕快看一下到底缺哪邊
$ /usr/bin/perl -e 'print "$_\n" foreach @INC'$ /usr/local/bin/perl -e 'print "$_\n" foreach @INC'
就因為懶惰沒注意, 難道真的要一裝再裝嗎? 倒也不用
方法有三
1. /etc/bash.bashrc 或是 ~/.bashrc或是各家用的shell的rc檔內加上一行輸出,把缺的填一填然後看看有沒有改善
PERL5LIB=/home/path/lib:/usr/another/path/lib; export PERL5LIB
2. 下命令補上
$ perl -I /home/path/lib -I /usr/another/lib script.pl
3. 每支程式都加上use
use lib "/home/path/lib";
這三個我都不喜歡
所以參考了GTK2-Perl的網頁, 最後還順便把Padre裝一裝
$ sudo apt-get install libglib2.0-dev
$ sudo apt-get install libgtk2.0-dev
$ sudo cpan
cpan > install Gtk2
1 則留言:
4. 在程式中加上:
sub BEGIN{
unshift @INC, "/home/path/lib";
}
張貼留言