转载地址: http://hi.baidu.com/pkuwwt/blog/item/1a67c809240de48ad0581b7f.html 前面已经写过一篇(记为 方法一 ),但这一次(记为 方法二 )的安装方式有所不同。不同之处有几点: 1)安装位置不同,方法一的安装位置为源码目录,而方法二的默认安装目录是/usr/local 2)难易程度不同,方法一需严格按照其说明来做,而方法二则采用通用的做法:configure,make,make install 但其本质是一样的,只不过方法一的编译脚本是multibuilt,而方法二的编译脚本是configure和make。产生的结果也没有差别,都是可执行程序目录和perl脚本目录。而且,最后两者都需要将这些目录添加为系统变量,并添加到系统目录。 下面开始介绍。 第一步:阅读ROI_PAC目录下的INSTALL文件 INSTALL文件中指出了安装ROI_PAC的要求:perl,fortran,C的编译器,fftw的安装。编译器在此就不讲了,说一下fftw安装的注意事项。fftw的安装也是"./configure,make,make install"三步曲,但是,细心的人会发现安装后找不到INSTALL文件中所说的libfftw3f.a,而只有/usr/local/lib/libfftw3.a文件,这样,后面安装ROI_PAC自然进行不下去。原因很简单,配置的时候要加一个选项,即./configure --enable-float CC=cc,我不知道后面的cc替换gcc有没有用,但方法一中指明了gcc好像会有潜在的问题。因此,安装fftw的命令为: 在fftw源目录中 ./configure --enable-float CC=cc make make install 第三个命令需要root权限,如果不出错,fftw应该就安装成功了。在/usr/local/lib中找一找libfftw3f.a,在/usr/local/include中找一找fftw3.h。 完了,不要忘了添加几个环境变量,因为ROI_PAC认死理,非要几个变量不可。它们是FFTW_LIB_DIR,FFTW_INC_DIR,故名思义,分别是lib目录和include目录: export FFTW_LIB_DIR=/usr/local/lib export FFTW_INC_DIR=/usr/local/include 第二步:开始安装ROI_PAC 三步曲,在ROI_PAC目录中: ./configure make make install 只要前两个命令不出错就无碍了,第三个命令需要有root权限,只是机械地拷文件而已。 第三步:仍然是环境变量 我的建议是将所有的环境变量放到$HOME/.bashrc中去(注意这个文件前面有个点,表示隐藏文件),当然,我假定终端使用的是bash。我贴一下我在.bashrc中加入的语句: export FFTW_INC_DIR="/usr/local/include" export FFTW_LIB_DIR="/usr/local/lib" export INT_BIN="/usr/local/bin" export INT_SCR="/usr/local/share/roi_pac" export FFTW_LIB="/usr/local/lib" export PATH=$PATH:$INT_BIN:$INT_SCR:$FFTW_LIB 可能有所冗余,我并不知道FFTW_LIB有没有用,也不知道FFTW_INC_DIR和FFTW_LIB_DIR在安装完之后还有没有用,但写上去没有什么坏处。关键是INT_BIN和INT_SCR,一个是可执行二进制程序,一个是perl脚本,没有它们,你既找不到程序,即使找到了程序,执行的过程中也会因为找不到模块而报错。 总之,我在这儿所做的目的在于,每当我启动一个终端会话(session),这个会话就会调用一次这个.bashrc文件,这样就可以省去手动添加的麻烦。如果你我的情况有所不同,那你最好不要全盘copy过去,我所强调的是,知道为什么这么做更重要。 第四步:仍然是测试,不然怎么知道成没成功。 数据仍然用roi_pac_testdir.tar.gz,将其解压到一个目录,记为DATA。我测试的方法是将方法一中的multitest.sh文件稍加改造一下。multitest.sh的核心是,生成一个脚本batch_script.sh,放到TEST_DIR目录中去,也就是数据的根目录,然后执行这个脚本。因此,我依葫芦化瓢,“写”了一个batch_script.sh。其内容如下: #!/bin/sh export SAR_PRC_DIR SAR_ODR_DIR INT_BIN INT_SCR SAR_PRC_DIR=$PWD/PRC SAR_ODR_DIR=$PWD/ERS/Delft TESTDIR=$PWD # determin endian-ness (might not work if using ebcdic charset) export endian case "`echo "N" | od -x`" in * 0* ) endian=big ;; *) endian=little ;; esac echo "${endian}-endian byte ordering selected" echo "DEM=$TESTDIR/DEM/SoCal.dem" "$TESTDIR"/int.proc rm -f $TESTDIR/DEM/SoCal.dem case $endian in big) cp $TESTDIR/DEM/SoCal.dem.nonpc_byte_order $TESTDIR/DEM/SoCal.dem ;; little) cp $TESTDIR/DEM/SoCal.dem.pc_byte_order $TESTDIR/DEM/SoCal.dem ;; *) echo "Unrecognized endian value. This should never happen. Exiting." exit 1 ;; esac which roi make_raw.pl cd $TESTDIR/930110 date time make_raw.pl PRC SARLEADER1993011018252739T1Of1 930110 cd $TESTDIR/950523 date time make_raw.pl PRC SARLEADER1995052318253409T1Of1 950523 cd $TESTDIR # Generate documentation for RSC keywords # that are not created by "Use_rsc" operations in the Perl scripts. doc_dem.pl DEM/SoCal.dem.rsc doc_leader.pl 930110/930110.raw.rsc doc_default_raw.pl 930110/930110.raw.rsc date time process_2pass.pl int.proc date 可以看出来,基本是从multitest.sh中copy过来的,只不过改了一下其中的目录,因此,这个脚本必须在DATA目录下运行,即当前目录是DATA。 cd DATA ./batch_script.sh 如果结果末尾有That's all folks,时间花费约40分钟,那就说明安装成功了。瞧,和第一种方法完全一样。 事实上,这个测试过程是一个完整的图像处理过程,今后使用roipac的时候就可以以之为模板。 最后,再次说明一下,为什么说方法一和方法二殊途同归?因为你会发现无论用哪种方法,那几个环境变量所对应的目录有着相同的内容。
Putty is an application getting a client computer connected to a romote one. Configurations: Intel Xeon CPU + Fedora 10 + gcc 4.3.2 Installing process: 1. access the subdirectory unix . # ./configure Error: gtk-config could not be found Reason: gtk package is not installed 2. install gtk package. # yum install gtk+.x86_64 # yum install gtk+-devel.x86_64 (Both of packages should be already present) 3. configure again and make. # ./configure # make After finishing, you should have the executable putty in the unix subdirectory. 4. run putty. # ./putty
Fedora 更新时An internal system error has occurred Error Type: type 'exceptions.UnicodeDecodeError' Error Value: 'ascii' codec can't decode byte 0xe4 in position 58: ordinal not in range(128).................. 解决办法: 1)yum clean all 2)yum update