【已解决】为docbook环境修复找不到fop的问题

【问题】

折腾:

【记录】尝试恢复基于cygwin的docbook环境

的过程中,出现找不到fop的问题。

【解决过程】

1. make的输出如下:

E:\Dev_Root\docbook\dev\books\arm_vs_mips\src>make release_copy
=============================== generating fo ==============================
export XML_CATALOG_FILES="/home/develop/docbook/config_root/catalog/catalog.xml" && \
export XML_DEBUG_CATALOG=1 && \
xsltproc –xinclude –stringparam callout.graphics 1 –stringparam admon.graphics 1 –stringparam callout.graphics.number.limit 30 –s
tringparam callout.graphics.extension .svg –stringparam callout.graphics.path E:/Dev_Root/docbook/dev/config/images/system/callouts/ –stri
ngparam admon.graphics.extension .svg –stringparam admon.graphics.path E:/Dev_Root/docbook/dev/config/images/system/colorsvg/ -o ../output/
fo/arm_vs_mips.fo docbook_fo_crl.xsl arm_vs_mips.xml
Resolve: sysID docbook_fo_crl.xsl
-2147483592 Parsing catalog /home/develop/docbook/config_root/catalog/catalog.xml
/home/develop/docbook/config_root/catalog/catalog.xml added to file hash
Resolve URI docbook_fo_crl.xsl
Found URI match docbook_fo_crl.xsl
Resolve: pubID crl.ent sysID http://www.crifan.com/files/res/docbook/entity/crl.ent
Found public match crl.ent
Making portrait pages on A4 paper (210mmx297mm)
Catalogs cleanup
Free catalog entry crl.ent
Free catalog entry /home/develop/docbook/tools_root/docbook-xsl-ns-1.77.1/
Free catalog entry docbook_html.xsl
Free catalog entry docbook_fo.xsl
Free catalog entry /home/develop/docbook/config_root/docbook-xsl-ns-1.77.1/
Free catalog entry docbook_html_crl.xsl
Free catalog entry chunk_html_crl.xsl
Free catalog entry docbook_htmlhelp_crl.xsl
Free catalog entry docbook_fo_crl.xsl
Free catalog entry /home/develop/docbook/config_root/catalog/catalog.xml
Free catalog entry
=============================== generating pdf ==============================
fop –execdebug -c E:/Dev_Root/docbook/dev/config/fop/conf/fop.xconf ../output/fo/arm_vs_mips.fo -pdf ../output/pdf/arm_vs_mips.pdf
make: fop: Command not found
../../../config/docbook.mk:386: recipe for target `../output/pdf/arm_vs_mips.pdf’ failed
make: *** [../output/pdf/arm_vs_mips.pdf] Error 127

E:\Dev_Root\docbook\dev\books\arm_vs_mips\src>

很明显,fop没找到。

2.然记得也是FOP_HOME的变量,应该就搞定的。

但是还是想要找到介绍资料,确认一下。

3.参考:

E:\Dev_Root\docbook\tools\fop-1.0\README

中的:

http://xmlgraphics.apache.org/fop/stable/running.html

结果打不开该链接。

4.后来找到:

Running Apache™ FOP

找了半天,也没见到有说这个FOP_HOME的。

5. 最后还是参考自己的:

【软件开发基础知识】XXX_HOME环境变量

去先打开cygwin环境,找到对应的本地fop路径:

E:\Dev_Root\docbook\tools\fop-1.0

所对应的cygwin中的路径是什么。

6. 即,解决fop问题之前,还是先要去解决右键添加cygwin的事情:

【已解决】为docbook环境而去添加右键运行cygwin

7.搞定右键运行cygwin的事情后,再去针对fop目录,用此RunCygwin:

for fop foler use run cygwin

 

得到当前路径为:

/cygdrive/e/Dev_Root/docbook/tools/fop-1.0

截图如下:

get current cygwin path for fop

8.然后把此路径,添加到新建的环境变量

FOP_HOME=/cygdrive/e/Dev_Root/docbook/tools/fop-1.0

截图:

new fop home env var

 

9.然后再去对应docbook下面某个book的src中去试试能否找到fop,结果错误依旧。

看来是忘了把bin目录加到path中了:

path中添加上:

%FOP_HOME%\bin;

再重试,还是不行。

然后才发现,原来fop的可执行文件是在根目录下的,不是bin下面。

所以,重新改为:

path中添加上:

%FOP_HOME%;

再试试,然后终于可以执行了。

 

【总结】

如果在cygwin(的docbook环境)中找不到fop,则:

1.找到fop所在路径对应的cygwin的路径

比如fop所在路径:

E:\Dev_Root\docbook\tools\fop-1.0

对应的cygwin路径:

/cygdrive/e/Dev_Root/docbook/tools/fop-1.0

2.添加环境变量FOP_HOME为fop的cygwin路径:

FOP_HOME=/cygdrive/e/Dev_Root/docbook/tools/fop-1.0

3.把fop的可执行文件(

  • windows下是fop.bat
  • linux下是fop

)的路径,添加到path中,此处是win7,所以:

path中,添加:

%FOP_HOME%;

即可。



发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量