Tag Archives: error

解决freebsd升级到最新ports遇到的问题

系统环境

uname -a
FreeBSD AN 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Wed Jul 31 16:20:23 CST 2013   amd64

更新系统的ports tree

先su获取root权限:

portsnap fetch
portsnap extract

出错

安装vim:

cd /usr/ports/editors/vim
make install clean

出错:

Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

"Makefile", line 137: Malformed conditional (${PYTHON_REL} < 300)
"Makefile", line 142: if-less endif
Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

"/usr/ports/Mk/bsd.sites.mk", line 953: Malformed conditional (!empty(_PERL_CPAN_ID) && ${_PERL_CPAN_FLAG:tl} == "cpan")
Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

"/usr/ports/Mk/bsd.port.mk", line 2877: Unclosed conditional/for loop
"/usr/ports/Mk/bsd.port.mk", line 2877: Unexpected end of file in for loop.

"/usr/ports/Mk/bsd.port.mk", line 6590: Unclosed conditional/for loop
"/usr/ports/Mk/bsd.port.mk", line 6590: Unexpected end of file in for loop.

1 open conditional:
         at line 1177 (evaluated to true)
make: fatal errors encountered -- cannot continue

谷歌查了一下,原因是7.0这个release不是一个正在维护的版本了,更新后的ports tree和当前的版本不兼容。

解决办法

  • 升级当前系统到最新版本
  • 重新恢复port tree到当前对应版本

stackoverflow的一篇帖子给了我灵感,到freebsd的找到了ports tree的官方备份网站找到了压缩包,恢复之: 用root用户下载install.sh和ports.tgz到/root文件夹,执行脚本解压

sh ./install.sh

debian下安装curl loader压力工具出现crypto.h的错误

FreeBSD的编译环境跟linux差别怎么这么大,很多时候gmake编译源代码都出错,很无奈啊;最近用到一些http的测试工具,源代码安装,在FreeBSD上源代码安装很难成功,依赖关系残缺不全,用ports安装也不省心,果断用debian linux。
找个能支持ipv6的压力测试工具真是难啊,tsung貌似很强大,也符合要求,但是BSD7上通过cli安装tsung好麻烦,新的ports还要java的license认证,麻烦加无语啊,后来找来找去,貌似curl loader很符合要求,能做ftp和ipv6的压力测试,果断安装,但是debian上源代码编译有如下错误:

ssl_thr_lock.h:27:28: error: openssl/crypto.h: No such file or directory

本以为安装openssl就行了,但是谷歌发现,需要安装openssl-devel,debian的包名叫libssl-dev,安装之后就OK了。这种错误让新手很无语加蛋疼,权且记录下来,让需要的人少走些弯路。