FreeBSD用ports安装Firefox不成功 + 解决办法!


今天在FreeBSD 5.4 Release中安装Firefox, 先更新ports tree到最新版本:

                                          
FreeBSD# cvsup -g -L 2 /root/ports-supfile
                                          

然后到Firefox的目录中去执行make:

                                          
FreeBSD# cd /usr/ports/www/firefox        
FreeBSD# make                             
                                          

没多久,系统就爆出了编译错误:


nsHostResolver.h:95: error: ISO C++ forbids declaration of `PRAddrInfo' with no type

nsHostResolver.h:95: error: expected `;' before '*' token
nsHostResolver.h: In member function `PRBool nsHostRecord::HasResult() const':
nsHostResolver.h:99: error: `addr_info' undeclared (first use this function)
nsHostResolver.h:99: error: (Each undeclared identifier is reported only once for each function it appears in.)
nsHostResolver.h: At global scope:
nsHostResolver.h:209: error: `PRAddrInfo' has not been declared
nsHostResolver.h:209: error: ISO C++ forbids declaration of `parameter' with no type
nsDNSService2.cpp: In member function `virtual nsresult nsDNSRecord::GetCanonicalName(nsACString&)':
nsDNSService2.cpp:95: error: 'class nsDerivedSafe<nsHostRecord>' has no member named 'addr_info'
nsDNSService2.cpp:96: error: 'class nsDerivedSafe<nsHostRecord>' has no member named 'addr_info'
nsDNSService2.cpp:96: error: `PR_GetCanonNameFromAddrInfo' undeclared (first use this function)
nsDNSService2.cpp: In member function `virtual nsresult nsDNSRecord::GetNextAddr(PRUint16, PRNetAddr*)':
nsDNSService2.cpp:112: error: 'class nsDerivedSafe<nsHostRecord>' has no member named 'addr_info'
nsDNSService2.cpp:113: error: 'class nsDerivedSafe<nsHostRecord>' has no member named 'addr_info'
nsDNSService2.cpp:113: error: `PR_EnumerateAddrInfo' undeclared (first use this function)
nsDNSService2.cpp: In member function `PRUint16 nsDNSService::GetAFForLookup(const nsACString&)':
nsDNSService2.cpp:528: error: `PR_AF_UNSPEC' undeclared (first use this function)
gmake[4]: *** [nsDNSService2.o] Error 1
gmake[4]: Leaving directory `/usr/ports/www/firefox/work/mozilla/netwerk/dns/src'
gmake[3]: *** [libs] Error 2
gmake[3]: Leaving directory `/usr/ports/www/firefox/work/mozilla/netwerk/dns'
gmake[2]: *** [libs] Error 2
gmake[2]: Leaving directory `/usr/ports/www/firefox/work/mozilla/netwerk'
gmake[1]: *** [tier_9] Error 2
gmake[1]: Leaving directory `/usr/ports/www/firefox/work/mozilla'
gmake: *** [default] Error 2
*** Error code 2
 
引起这个问题的原因是Firefox在老版本的nspr上会存在问题,无法通过编译!
于是决定安装新版的依赖包:

                                                        
FreeBSD# cd /usr/ports                                  
FreeBSD# make search name=nspr                          
                                                        


查出来有如下几个:

                                                        
Port:   nspr-4.4.1_1                                    
Path:   /usr/ports/devel/nspr                           
                                                        
Port:   dnsproxy-1.13                                   
Path:   /usr/ports/dns/dnsproxy                         
                                                        
Port:   transproxy-1.5                                  
Path:   /usr/ports/www/transproxy                       
                                                        

对他们一一进行make, make install后,再来安装firefox即可!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值