精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● FreeBSD>>开发相关>>开发语言>>Java>>Re:安装jdk时出现问题...

主题:Re:安装jdk时出现问题...
发信人: rmdir(rmdir)
整理人: zhcharles(2003-04-05 23:49:11), 站内信件
【 在 hoyzhang 的大作中提到:】
:#cd /usr/ports/linux-sun-jdk13
:#make
:...
:#make install
:...
:
:......
 水木清华 -- FreeBSD精华区文章阅读
--------------------------------------------------------------------------------
 发信人: joyplay (小猪^我有女朋友^还要养只小狗狗), 信区: FreeBSD       
标  题: JDK for FreeBSD 安装说明
发信站: BBS 水木清华站 (Wed Jul 24 19:10:04 2002)

最近这段时间接到项目组的要求提供支持,于是专门花了两天时间好好
钻研了一下freebsd,嘻嘻,果然是个好东西。

首先还要谢谢各位朋友的帮助,文档中有不对的地方请多多包涵。
以后还有很多东西向大家请教,请多多照顾,呵呵。



下面是我整理出来的安装文档,少量部份引用了王波作品。更多的是在
bbs几位大虾指点下安装成功后整理出来的。

其中有一点要说明:在教育网安装ports比较费劲,但是也不是不可能。
ftp://ftp.cuhk.hk/pub/FreeBSD/distfiles这里有很多ports需要的
安装程序和源代码包。这个ip是教育网可以访问的。

并将/etc/defaults/make.conf复制到/etc/make.conf,修改其中的
#MASTER_SITE_BACKUP?=   \
#       ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
#MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP}
去掉注释,设置为 ftp://ftp.cuhk.hk/pub/FreeBSD/distfiles即可。
可以同时设置多个FtpSite,每行用\结束表示换行,最后一行用/结束。
呵呵,昨天有个朋友贴了他自己的make.conf,好像用的是tw的一个站点。
我用的就是hk这个,速度还行。

另外,还可以修改 /etc/make.conf 中的
#FTP_PROXY=      10.0.0.1:21
#HTTP_PROXY=     10.0.0.1:80
去掉注释,设置一个可用的代理。

另外,上次试验jdk for freebsd安装的时候,ports引导安装的是
jdk 1_3_1_03 + patch5, 隔了一个星期,现在是 jdk 1_3_1_04 + patch6。
我编译jdk的时候,并没有编译jdk13或者linux-jdk13,而是linux-sun-jdk13
因为在编译jdk13和linux-jdk13的时候没有成功,而且似乎还需要我编译x系列的东西
所以我没测试。不知道有什么区别  :)







JDK for FreeBSD 安装说明

 

         一、FreeBSD下软件安装的特点

         FreeBSD 操作系统源自于 Unix 系统的 BSD 分支。目前所普遍流行的 
FreeBSD 4.x 以上版本均从 BSD Lite 4.4 发展而来。而由于Linux与Unix系统的兼容特
性,使得大量的Unix下和Linux下的软件能在FreeBSD 
下运行。但是要使用这些软件,我们需要注意软件版权、授权以及操作系统兼容等等的问
题。

         1、软件许可协议

         Unix系统的盛行,使得很多程序员为Unix系统开发软件。在众多的开发者中,
有几个比较有名的组织和团体对类Unix系统的开发有很重要的影响。

         
著名的GNU、开放源代码的OpenSource,以及BSD系统的众多流派分别制定了不同的软件授
权协议。其中,GNU的协议相对比较完善,也比较有影响力,所以很多自由软件团体都借
用GNU的协议。根据GNU协议规定,使用者有权自由散发根据GNU授权的软件,但不能用于
商业用途。而OpenSouce
则不是针对用途来进行限制,但是要求使用了OpenSource的代码的软件必须提供相应部分
的源代码,比如著名的NetScape的Navigator。BSD授权协议相对比较宽松,软件使用者可
以将BSD授权的软件用于商业用途,例如FreeBSD,也可以自由使用源代码。不过要求使用
者尊重作者的版权、署
名权等等,不得修改作者的版权信息和说明。这就是大家常见到的:“你可以自由的发布
、散发本软件的拷贝,可以修改源代码,但是必须保证本文档的完整性”等等。

         还有一些软件属于完全的自由软件:作者往往是大学或者一些研究机构,对这
些软件的代码和软件本身已经放弃了版权。大家可以自由使用,并且用于商业用途。

         因此,在使用这些软件的时候需要注意,GNU、BSD、OpenSource授权的软件本
身的要求。还要记住:这些软件并不提供商业支持。这里说到的软件的区别,与共享软件
、商业软件不是一个概念。

         2、操作系统兼容

         一般来说,Linux和Unix下的软件可以在FreeBSD上使用,除非软件进行了一些
特定的系统调用。FreeBSD下能直接读取Unix/Linux下的二进制文件,例如目前广泛流行
的ELF格式。

         由于FreeBSD是一个BSD授权的软件系统,BSD授权和GNU授权的不同导致FreeBSD
系统中不能把太多的 涉及到版权问题,或者因为用户需要将FreeBSD用于商业用途而引发
的版权问题 
的软件集成到FreeBSD系统中来。所以,FreeBSD安装介质中虽然也提供了很多其它的软件
(商业的、非商业的),但默认安装的过程中是不涉及这些软件的。

         
另外,这些软件都是经过了FreeBSD开发小组和广大爱好者使用者测试之后才放到安装程
序中,所以他们的兼容性和可用性是没有问题的。除了FreeBSD安装过程中提示可以安装
的软件之外,有很多Unix和Linux系统下的软件都可以安装到FreeBSD下。但是这些软件的
系统兼容性、系统版本兼
容性、对其它软件的依赖、安装方式等等都取决于开发者或者说软件提供者本人。

         
好在Unix的众多分支,以及Linux和FreeBSD等BSD系统之间的大部分系统调用和命令是兼
容的。而系统本身和众多的软件又基本上都是C语言写成的,源代码在不同的系统下用不
同的环境设置和参数重新编译之后就可以使用。也因此并结合上面说到的软件授权方式的
区别,很多软件提供者在
提供软件的时候,一般提供软件的升级补丁、针对不同系统的补丁、软件的二进制发行包
和源代码。甚至很多软件的安装基本上都是 解开源代码、配制编译环境、设置编译参数
、编译、编译安装 这样的安装过程。安装之后的配置和使用,就不属于软件的发布环节
了。

         所以,安装一个软件的时候,一定要仔细的阅读发布者的说明文件。比如:版
本特性、版本的操作系统支持、版本升级的问题。尤其需要注意编译和安装配置部分。

         3、PackagesCollection 和 PortsCollection

         FreeBSD中提供了上G字节大小的预编译并打好包的二进制应用软件包,这些软
件包能够立即安装使用。在软件包中不但记录了二进制软件的内容,还包括这些软件的安
装位置、软件包的描述信息,以及软件包之间的依赖关系,这种管理软件的机制称为
Packages 
Collection。通常安装介质提供的这些Packages位于安装介质中的 packages目录下,使
用安装程序sysinstall就能够很容易的安装和卸载这些安装好的软件包。(由于空间的限
制,安装光盘上并不能包括所有的软件包,可以从Internet上下载)

要注意的是,这些Package不一定是软件,可能还有函数库、模块文件等等。另外需要特
别注意这些Packages之间可能存在非常复杂的依赖关系,即安装一个Package的时候可能
必须安装其它一些依赖的Package。

在FreeBSD里面安装的软件,被称作“port”。对于一般的使用者,有了FreeBSD提供的众
多预编译好的软件包,就可以直接安装这些应用软件的二进制版本,而不需要使用Ports 
Collection重新编译软件。然而安装介质上附带的软件包是按照缺省配置生成的,适合大
多数用户的需要,但并不一定最适合特定用户的特定需求。如果需要对某个软件进行定制
安装,就需要使用 Ports Collection,进行修改后重新编译安装。

在启动这个软件的安装与管理机制之前,必须安装 ── Ports Collection的源代码
ports.tgz,它在安装介质中提供,系统的初始安装过程中,安装程序将提示使用者安装
Ports Collection,系统安装之后也能直接从安装介质上重新安装或更新。

Ports Collection的源代码被安装到/usr/ports目录中,这个目录称为Ports 树,以树状
结构保存了各个应用程序的Ports。与Packages 
Collection的目录结构相同,Ports中也按类别进行相关分类,/usr/ports下的每个子目
录都包含某一类软件,在下一级的每个子目录下就放置各个Port。

FreeBSD开发小组和网络上大量的志愿者和爱好者,以及很多软件提供者本人专门为
FreeBSD提供和维护着很多常用软件的Ports配置文件。因此,从FreeBSD官方网站 
http://www.freebsd.org/ports/能得到很多软件的最新的Ports配置和安装资源。

在以Ports方式安装软件的时候,PortsCollection机制会自动从该软件的Ports配置中查
询需要的资源文件:例如源代码包、模块文件等等。如果没有提供安装所需要的这些资源
,则会根据Ports配置中的要求自动去Internet上的一些网站自动下载。一旦发现该软件
的安装需要其它软件的支
持,PortsCollection机制会自动去查询其它软件是否存在。如果不存在,则依靠该软件
的Ports去自动更新。所以,在使用PortsCollection安装的过程中一点儿也不用担心,如
果缺少什么文件,系统会提示你从哪里下载。而更多的时候,系统会自动下载这些文件。

依靠PortsCollection方式安装软件,需要提供一个可以访问国外ftp站点的网络环境。如
果缺少这样的环境,可以把安装所需的文件放到系统的/usr/ports/distfiles目录下。安
装的时候,系统会首先去这个目录下查找是否存在所需文件。如果不存在,系统才按照
Ports配置文件所描述去
其它站点下载。

 

二、安装JDK for FreeBSD

1、  设置Linux 兼容

为了在FreeBSD上安装JDK,其实是安装一个JDK for Linux,所以需要设置FreeBSD兼容
Linux。

修改:/etc/rc.conf 文件

检查并确保有一行内容如下:

linux_enable="YES"

重新启动操作系统之后即生效。

 

2、  更新Ports

资源:http://www.freebsd.org/ports/

由于一般安装FreeBSD都是通过光盘介质来安装的,因此系统中所提供的Ports未必是最新
的。所以需要去 http://www.freebsd.org/ports/更新到最新的Ports树。把下载的
prots.tgz展开为/usr/ports/。

另外,可以在线通过cvs或者cvsup来更新。

例如,先安装 cvsup (去freeBSD网站下载最新的cvsup,目前是 cvsup-16.1e.tgz)。

然后创建一个cvs配置文件内容如下:

*default host=cvsup3.FreeBSD.org 
*default base=/usr 
*default prefix=/usr 
*default release=cvs tag=. 
*default delete use-rel-suffix 
*default compress 
ports-all
 

保存为:updateports 

然后执行:cvsup -g -L2 updateports

这样,系统就会去连接cvsup3.FreeBSD.org,升级PortsCollection到/usr目录。

随后可以在 /usr/ports/java/ 目录下找到好几个JDK目录。

 

3、  下载所需的Distfiles

资源:http://www.freebsd/java/http://www.eyesbeyond.com/freebsddom/java/jdk13
.html 

注意:安装JDK最好把服务器放在一个可以访问国外FTP网站的网络环境中。否则安装过程
中很可能需要安装或者升级一些相关的软件。

安装JDK for FreeBSD 最少需要 jdk for Linux 的相关文件,然后是一个FreeBSD 的
patchset。

bsd-jdk131-patches-6.tar.gz
j2sdk-1_3_1_04-linux-i586.bin
javavmwrapper-1.3.tgz
 

(两周以前我在FreeBSD中试验安装的时候,Ports引导我安装了JDK 1.3.1_03 for 
Linux ,使用的patchset是patch5,上周再次试验安装的时候,Ports已经更新为安装
JDK 1.3.1_04 ,patch6)

为了解开tar和经过zip压缩的gz/tgz文件,系统还需要tar、gzip等等软件支持。另外为
了兼容Linux的rpm,也需要升级一些其它文件。这一切都可以让Ports自己去完成而无需
干预。

 

4、  编译、安装

将上面说到的文件放到/usr/ports/distfiles/目录下,然后来到 /usr/ports/java/linu
x-sun-jdk13/ 

执行:make

此时强大的PortsCollection开始运转,自动检查并下载所需要的文件并编译。

等这一步骤完成,jdk已经编译到 /usr/ports/java/linux-sun-jdk13/work/ 目录下。

随后执行:make install

系统把jdk安装到 /usr/local/linux-jdk1.3.1/ 目录下,并完成安装过程。

最后可以执行:make clean 来清理安装过程中生成的大量中间文件和目标文件。

 

5、  配置Java开发环境

无论在Windows下还是FreeBSD下进行Java相关的程序开发工作,需要设置环境参数 PATH
、JAVA_HOME、CLASSPATH。

需要注意的是不同的Shell有不同的操作方式。Bash如下:

PATH=$PATH: /usr/local/linux-jdk1.3.1/bin/

JAVA_HOME=/usr/local/linux-jdk1.3.1/

CLASSPATH=.:/usr/local/linux-jdk1.3.1/lib/

export PATH JAVA_HOME CLASSPATH
 

注意:曾经遇到过有些莫名其妙的错误,例如ClassLoader找不到java程序的main或者
class入口,当在classpath的搜索路径中加入了”.”之后问题就解决了。

可以把设置环境变量的工作放到用户登录脚本或者启动脚本中去,然后就可以使用java的
软件了。

写个简单的java程序测试一下:java helloworld

 

三、安装Resin for FreeBSD

Resin是一套比较不错的符合Sun公司提出来的JSP和Servlet规范的Java Server Page 
ApplicationServer。平台支持比较广泛,也有很好的运行效率。据测试,JDK 1.4下运行
状态不好,因此使用的时候最好还是安装JDK 1.3来运行Resin(以及其它需要java的系统
)。

与很多其它的开放源代码的软件一样,Resin分两种版本:普通版本、企业版本。主要区
别在于企业版本提供技术支持。因此,请在使用Resin的时候务必注意版权和许可问题,
下载并使用适当的版本。

资源:http://www.caucho.com/download/index.xtp

1、  前提条件

安装Resin必须先提供JDK。

另外,如果要把Resin和Apache一起使用,还需要先安装apache。

Apache可以从 http://www.apache.org下载。需要注意的是,最近一段时间频频出现一
些在安全性和稳定性方面非常有名的软件发现安全问题。Apache在上个月发现了一个比较
严重的安全问题,并将版本升级至 
1.3.26。经过我的测试和安装,发现新的版本的apache与原先的1.3.22版本无法同时使用
,并且在配置文件上存在差异。所以如果系统中同时安装了WisdomMail系统这样同样需要
apache的软件,请注意兼容性。此时最好通过下载1.3.22的源代码,并按照安全通告要求
修改部分代码重新编译
安装。

默认的情况下 apache 安装到 /usr/local/apache/ ,resin安装的时候默认去这个目录
查找apache,并把模块文件复制到apache目录。

 

2、  编译、安装Resin

下载了最新的 Resin (目前是 2.1.2)并展开到 /home/work/resin/

在编译之前需要确定 JAVA_HOME。

执行:echo $JAVA_HOME

如果存在,则执行:./configure –with-apache

自动根据系统环境设置编译resin所需的各种配置和参数。

完成之后执行:make

和:make install

当前目录下的bin目录下便是resin的执行文件。

/home/work/resin/bin/httpd.sh

有关编译和安装的时候可以使用的参数的更多详细内容请察看 readme.txt 以及 
http://www.caucho.com

 

3、  配置和启动Resin

Resin的配置文件就在 resin/conf/resin.conf 

启动 Resin 很简单,执行 resin/bin/httpd.sh 即可。

如果需要让 Resin 启动的时候使用指定的JDK,可以在启动的时候使用参数:
resin/bin/httpd.sh –javahome /usr/local/jdk14/ 

需要注意的地方是:

a、   默认情况下Resin使用8080端口来提供服务,因此需要确保该端口没有被其它服务
占用:可以通过更改配置文件来修改服务端口。

b、   最好以后台方式启动Resin,例如在启动系统的时候自动执行。可将以下内容的文
件放在 /usr/local/etc/rc.d/ 目录下:

#!/bin/sh

/usr/local/resin/bin/httpd.sh &
 

安装好的Resin的JSPRoot 在 resin/doc/ ,可以在这里看到Resin提供的一些例子。也可
以修改配置文件来更改这个目录。

好了,写一个简单的 jsp 试试看吧。

http://freebsd:8080/helloworld.jsp

 




--
天堂里有没有猪来猪往?
。。。。。。 。。。。。。
小猪^闹情绪^赖床
小猪^坐在地上^啃骨头
小猪^死翘翘^请勿围观
小猪^继续装死^谢绝参观


※ 来源:·BBS 水木清华站 smth.edu.cn·[FROM: 166.111.218.218]

 

--------------------------------------------------------------------------------
[返回上一页] [本讨论区]

[关闭][返回]