﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Everything is a contribution-随笔分类-开源技术</title><link>http://www.blogjava.net/idkkk/category/7682.html</link><description>走过Java的点点滴滴，与大家共勉～</description><language>zh-cn</language><lastBuildDate>Sat, 01 Dec 2007 10:19:48 GMT</lastBuildDate><pubDate>Sat, 01 Dec 2007 10:19:48 GMT</pubDate><ttl>60</ttl><item><title>使用CVSUp镜像CVS库</title><link>http://www.blogjava.net/idkkk/archive/2007/11/26/163144.html</link><dc:creator>Kevin Xia</dc:creator><author>Kevin Xia</author><pubDate>Mon, 26 Nov 2007 05:36:00 GMT</pubDate><guid>http://www.blogjava.net/idkkk/archive/2007/11/26/163144.html</guid><wfw:comment>http://www.blogjava.net/idkkk/comments/163144.html</wfw:comment><comments>http://www.blogjava.net/idkkk/archive/2007/11/26/163144.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/idkkk/comments/commentRss/163144.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/idkkk/services/trackbacks/163144.html</trackback:ping><description><![CDATA[<div><strong>*******************<br />
&nbsp; 配置cvs主服务器<br />
*******************</strong><br />
1. 安装cvsupd的软件包<br />
#rpm -iv cvsupd-16.1-0.fdr.6.h.rh90.i386.rpm<br />
注：cvsupd-16.1-0.fdr.6.h.rh90.i386.rpm是针对redhat9以及redhat ES3的cvsupd包<br />
&nbsp;&nbsp;&nbsp; 其他版本需要下载对应的软件包.<br />
<br />
2. 配置cvsupd<br />
#cd /usr/local/etc/<br />
#mkdir -p cvsup/sup/test<br />
#cd cvsup/sup/test<br />
注：/usr/local/etc/cvsup是cvsupd默认的base目录路径，具体可以用"man cvsupd"，查看其-b属性.<br />
&nbsp;&nbsp;&nbsp; 在sup目录下的子目录为collection，collection表示你需要备份的文件的集合.<br />
<br />
#vi releases<br />
cvs list=list.cvs prefix=/home/cvsroot<br />
注：其中prefix的值是cvs目录的根<br />
<br />
#vi releases<br />
upgrade apple<br />
注：其中apple是对应的cvs目录下module名称，如果有多个可以添加多个<br />
&nbsp;&nbsp;&nbsp; upgrade module1<br />
&nbsp;&nbsp;&nbsp; upgrade module2<br />
<br />
3. 启动cvsupd服务<br />
#cvsupd -C 1 -l cvsupd.log<br />
注：可以建立自启动脚本，新建/usr/local/etc/rc.d/cvsupd.sh, 添加如下内容：<br />
#!/bin/sh<br />
[ -x /usr/local/sbin/cvsupd ] &amp;&amp; \<br />
su -m nobody -c "/usr/local/sbin/cvsupd -e -C 8 -l @daemon" &amp;&amp; \<br />
echo -n ' cvsupd'<br />
<br />
使用命令"chmod 770"修改文件属性.<br />
<br />
<br />
<strong>*********************<br />
&nbsp; 配置cvs镜像服务器<br />
*********************<br />
</strong>1. 安装cvsup的软件包<br />
#rpm -iv cvsup-16.1-0.fdr.6.h.rh90.i386.rpm<br />
注：cvsup-16.1-0.fdr.6.h.rh90.i386.rpm是针对redhat9以及redhat ES3的cvsup包<br />
&nbsp;&nbsp;&nbsp; 其他版本需要下载对应的软件包.<br />
<br />
2. 配置cvsup<br />
#mkdir /cvsmirror<br />
#cd /cvsmirror<br />
#vi supfile<br />
*default host=192.168.100.92<br />
*default base=.<br />
*default release=cvs<br />
*default delete use-rel-suffix<br />
test<br />
注：其中host的值是cvs主服务器的ip地址，base表示存放镜像文件的位置<br />
<br />
3. 运行cvsup获取mirror<br />
#cvsup supfile<br />
注：可以使用cron定制计划任务，让客户端定时从服务器上获取cvs资源.<br />
&nbsp;&nbsp;&nbsp; 使用"crontab -e"命令添加计划，内容如下(每天的晚上10点执行cvsup任务)：<br />
&nbsp;&nbsp;&nbsp; 30 12 * * * /usr/bin/cvsup -L 2 -g /cvsbak/supfile
</div>
 <img src ="http://www.blogjava.net/idkkk/aggbug/163144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/idkkk/" target="_blank">Kevin Xia</a> 2007-11-26 13:36 <a href="http://www.blogjava.net/idkkk/archive/2007/11/26/163144.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Linux9/Linux ES3上安装moinmoin</title><link>http://www.blogjava.net/idkkk/archive/2007/11/26/163107.html</link><dc:creator>Kevin Xia</dc:creator><author>Kevin Xia</author><pubDate>Mon, 26 Nov 2007 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/idkkk/archive/2007/11/26/163107.html</guid><wfw:comment>http://www.blogjava.net/idkkk/comments/163107.html</wfw:comment><comments>http://www.blogjava.net/idkkk/archive/2007/11/26/163107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/idkkk/comments/commentRss/163107.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/idkkk/services/trackbacks/163107.html</trackback:ping><description><![CDATA[<p>在网上查找了好多wiki，对国际化的支持，最后选择了moinmoin，以下是搭建过程：<br />
</p>
<p><strong>1. 安装Python2.3.4版本</strong><br />
解压缩Python2.3.4包后，进入解压后的目录：<br />
#./configure --enable-unicode=ucs4<br />
#make<br />
#make install</p>
<p><strong>2. 安装moinmoin</strong><br />
解压缩moin安装包后，进入解压后的目录：<br />
#python2.3 setup.py --quiet install --record=install.log</p>
<p><strong>3. 建立一个wiki实例</strong><br />
#export PREFIX=/usr/local<br />
#export SHARE=$PREFIX/share/moin<br />
#export WIKILOCATION=$SHARE<br />
#export INSTANCE=moin.cgi</p>
<p>#export USER=apache<br />
#export GROUP=apache</p>
<p>#cd $WIKILOCATION<br />
#mkdir $INSTANCE<br />
#cp -R $SHARE/data $INSTANCE<br />
#cp -R $SHARE/underlay $INSTANCE<br />
#cp $SHARE/config/wikiconfig.py $INSTANCE</p>
<p>#chown -R $USER.$GROUP $INSTANCE<br />
#chmod -R ug+rwX $INSTANCE<br />
#chmod -R o-rwx $INSTANCE</p>
<p>#cd $WIKILOCATION/$INSTANCE<br />
#mkdir cgi-bin<br />
#cp $SHARE/server/moin.cgi cgi-bin<br />
#chown -R $USER.$GROUP cgi-bin<br />
#chmod -R ug+rx cgi-bin<br />
#chmod -R o-rwx cgi-bin<br />
#vi cgi-bin/moin.cgi<br />
修改第一行为：#!/usr/local/bin/python2.3<br />
增加如下内容：<br />
import sys<br />
sys.path.insert(0, '/usr/local/share/moin/moin.cgi')</p>
<p>#echo "" &gt;&gt;/etc/httpd/conf/httpd.conf<br />
#echo "Alias /wiki/ \"$SHARE/htdocs/\"" &gt;&gt;/etc/httpd/conf/httpd.conf<br />
#echo "ScriptAlias /mywiki \"$WIKILOCATION/$INSTANCE/cgi-bin/moin.cgi\"" &gt;&gt;/etc/httpd/conf/httpd.conf<br />
#echo "Alias /wikiattach/ \"/usr/local/share/moin/moin.cgi/data/pages/\""&gt;&gt;/etc/httpd/conf/httpd.conf</p>
<p><strong>3. 修改wiki的配置文件wikiconfig.py</strong><br />
sitename = u'SoftBrain Wiki'<br />
logo_string = sitename<br />
interwikiname = None</p>
<p>data_dir = '../data/'<br />
data_underlay_dir = '../underlay/'<br />
url_prefix = '/wiki'</p>
<p>allowed_actions = ['DeletePage', 'AttachFile', 'RenamePage']<br />
attachments = {<br />
'dir': '../data/pages',<br />
'url': '/wikiattach',<br />
}</p>
<p>acl_enabled = 1    </p>
<p>acl_rights_default = 'All:read'<br />
acl_rights_before = "liu chunping,zhaowm,zhangcg,wenyp,xiajx,fuxw,chenjing,chu,shichida:read,write,delete,revert,admin"</p>
<p><br />
mail_smarthost = "192.168.99.2"<br />
mail_from = "xiajx@hotmail.com"<br />
mail_login = ""</p>
<p>navi_bar = [<br />
# Will use page_front_page, (default FrontPage)<br />
u'%(page_front_page)s',<br />
u'RecentChanges',<br />
u'FindPage',<br />
u'HelpContents',<br />
]</p>
<p>theme_default = 'modern'</p>
<p>charset = "utf-8"<br />
upperletters = "A-Z"<br />
lowerletters = "0-9a-z"</p>
<p>default_lang = 'zh'</p>
<p>page_category_regex = u'^Category[A-Z]'<br />
page_dict_regex = u'[a-z]Dict$'<br />
page_form_regex = u'[a-z]Form$'<br />
page_group_regex = u'[a-z]Group$'<br />
page_template_regex = u'[a-z]Template$'</p>
<p>show_hosts = 1                  <br />
show_section_numbers = 0<br />
chart_options = {'width': 600, 'height': 300}</p>
<p><strong>4. 修改/usr/local/lib/python2.3/site-packages/MoinMoin/i18n目录下的zh.py文件(大概在59-64行)，</strong><br />
纠正编辑时候的javascript错误，做如下修改：<br />
'''您对'%(lock_page)s'的编辑锁定已经超时!''',<br />
'''您对'%(lock_page)s'的锁定将在#分钟内失效.''',<br />
'''您对'%(lock_page)s'的锁定将在#秒内失效.''',</p>
<p><br />
注意：对于moinmoin的迁移则不用进行步骤3、4，直接把原来的mywiki整个目录拷贝到/usr/local/share/moin目录即可；<br />
如果需要单独对某页进行权限控制，只需要管理员在编辑该页时，将以下内容添加到第一行即可：<br />
#acl Trusted:read,write,delete,revert Known:read,write,delete,revert All:read</p>
<img src ="http://www.blogjava.net/idkkk/aggbug/163107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/idkkk/" target="_blank">Kevin Xia</a> 2007-11-26 11:00 <a href="http://www.blogjava.net/idkkk/archive/2007/11/26/163107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设置Linux启动时进入的默认环境</title><link>http://www.blogjava.net/idkkk/archive/2007/11/26/163103.html</link><dc:creator>Kevin Xia</dc:creator><author>Kevin Xia</author><pubDate>Mon, 26 Nov 2007 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/idkkk/archive/2007/11/26/163103.html</guid><wfw:comment>http://www.blogjava.net/idkkk/comments/163103.html</wfw:comment><comments>http://www.blogjava.net/idkkk/archive/2007/11/26/163103.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/idkkk/comments/commentRss/163103.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/idkkk/services/trackbacks/163103.html</trackback:ping><description><![CDATA[如果需要设置linux默认进入的模式，5表示图形模式，3表示文本模式。<br />
修改/etc/inittab文件，将第一行的id:5:initdefault中的数字修改为3进入文本模式。
<img src ="http://www.blogjava.net/idkkk/aggbug/163103.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/idkkk/" target="_blank">Kevin Xia</a> 2007-11-26 10:58 <a href="http://www.blogjava.net/idkkk/archive/2007/11/26/163103.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实现简单ping检测的Shell</title><link>http://www.blogjava.net/idkkk/archive/2007/11/26/163096.html</link><dc:creator>Kevin Xia</dc:creator><author>Kevin Xia</author><pubDate>Mon, 26 Nov 2007 02:49:00 GMT</pubDate><guid>http://www.blogjava.net/idkkk/archive/2007/11/26/163096.html</guid><wfw:comment>http://www.blogjava.net/idkkk/comments/163096.html</wfw:comment><comments>http://www.blogjava.net/idkkk/archive/2007/11/26/163096.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/idkkk/comments/commentRss/163096.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/idkkk/services/trackbacks/163096.html</trackback:ping><description><![CDATA[最近有这样一个需求，需要知道目标机器是否是live状态，通过脚本发送ping其实是一个最原始的办法，一般情况不推荐使用，以下是实现思路。<br />
<p>#!/bin/bash<br />
# use the script to confirm the hosts are alive or not<br />
VIDEO_1=192.168.99.3<br />
VIDEO_2=192.168.99.4<br />
VIDEO_3=192.168.99.5</p>
<p>for LOOP in $VIDEO_1 $VIDEO_2 $VIDEO_3<br />
do<br />
&nbsp; if ! ping -c 3 $LOOP &gt; /dev/null 2&gt;&amp;1; then<br />
&nbsp;&nbsp;&nbsp; echo "Warning:The host $LOOP seems down" &gt;&gt; error.log<br />
&nbsp; fi<br />
done</p>
<p>if [ -f error.log ]; then<br />
&nbsp; mail -s "Warning:Host Down" xiajx@hotmail.com &lt; error.log<br />
&nbsp; rm -f error.log<br />
fi</p>
<br />
<br />
<img src ="http://www.blogjava.net/idkkk/aggbug/163096.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/idkkk/" target="_blank">Kevin Xia</a> 2007-11-26 10:49 <a href="http://www.blogjava.net/idkkk/archive/2007/11/26/163096.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下使用chkconfig设置自启动脚本</title><link>http://www.blogjava.net/idkkk/archive/2007/11/26/163094.html</link><dc:creator>Kevin Xia</dc:creator><author>Kevin Xia</author><pubDate>Mon, 26 Nov 2007 02:47:00 GMT</pubDate><guid>http://www.blogjava.net/idkkk/archive/2007/11/26/163094.html</guid><wfw:comment>http://www.blogjava.net/idkkk/comments/163094.html</wfw:comment><comments>http://www.blogjava.net/idkkk/archive/2007/11/26/163094.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/idkkk/comments/commentRss/163094.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/idkkk/services/trackbacks/163094.html</trackback:ping><description><![CDATA[<p>(以配置自启动Tomcat为例子)<br />
<strong>1) 在/etc/rc.d/init.d/下新建startTomcat，添加如下内容：</strong><br />
#!/bin/sh<br />
# chkconfig: 345 63 37<br />
# description: tomcat server init script<br />
su - root -c '/usr/local/tomcat/bin/startup.sh'</p>
<p><strong>2) 修改文件属性为可以执行权限</strong><br />
#chmod 755 startTomcat</p>
<p><strong>3) 配置脚本</strong><br />
#chkconfig --level 345 startTomcat on</p>
<img src ="http://www.blogjava.net/idkkk/aggbug/163094.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/idkkk/" target="_blank">Kevin Xia</a> 2007-11-26 10:47 <a href="http://www.blogjava.net/idkkk/archive/2007/11/26/163094.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CVS中关于$的一些小技巧</title><link>http://www.blogjava.net/idkkk/archive/2006/10/09/74113.html</link><dc:creator>Kevin Xia</dc:creator><author>Kevin Xia</author><pubDate>Mon, 09 Oct 2006 08:54:00 GMT</pubDate><guid>http://www.blogjava.net/idkkk/archive/2006/10/09/74113.html</guid><wfw:comment>http://www.blogjava.net/idkkk/comments/74113.html</wfw:comment><comments>http://www.blogjava.net/idkkk/archive/2006/10/09/74113.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/idkkk/comments/commentRss/74113.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/idkkk/services/trackbacks/74113.html</trackback:ping><description><![CDATA[
		<p>CVS会对它内部的关键字自动更新，如$date$放在文件中每当commit时它会自动记录日期，<br />加入这些关键字再我们的文档或代码里就可以自动记录相关信息，关键字如下：</p>
		<p>$Id$：关键字<br />$Log$：你所提供的修改日志信息。 <br />$Author$：存入该版本的作者。 <br />$Locker$：该版本的加锁者 <br />$State$：该版本的状态 Exp（试验版）, Stabe（稳定版）, Rel（发行版）.缺省是Exp <br />$Date$：该版本存入的时间，使用UTC时间格式。 <br />$Revision$：该版本的版本号 <br />$RCSfile$：RCS文件名 <br />$Source$：RCS全路径名 <br />$Name$：取回该版本的符号名 <br />$Header$：相当于$ Source $$ Revision$$Date$$Author $$State$$Locker$的组合</p>
<img src ="http://www.blogjava.net/idkkk/aggbug/74113.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/idkkk/" target="_blank">Kevin Xia</a> 2006-10-09 16:54 <a href="http://www.blogjava.net/idkkk/archive/2006/10/09/74113.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Log4j配置及使用</title><link>http://www.blogjava.net/idkkk/archive/2006/10/09/74112.html</link><dc:creator>Kevin Xia</dc:creator><author>Kevin Xia</author><pubDate>Mon, 09 Oct 2006 08:49:00 GMT</pubDate><guid>http://www.blogjava.net/idkkk/archive/2006/10/09/74112.html</guid><wfw:comment>http://www.blogjava.net/idkkk/comments/74112.html</wfw:comment><comments>http://www.blogjava.net/idkkk/archive/2006/10/09/74112.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/idkkk/comments/commentRss/74112.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/idkkk/services/trackbacks/74112.html</trackback:ping><description><![CDATA[
		<div class="diaryContent" id="diary583101" style="DISPLAY: block">log4j为很完善的日志系统，通过设置配置文件来控制日志系统.可以自定义日志的输出级别，指定日志保存的方式(文件、数据库、邮件等)，下面示例对控制台、文件的日志配置：<br /><br />1) 把log4j.properties或是log4j.xml放在src根下(ClassPath路径中)，或者结合spring的配置在web.xml中<br /><strong>&gt; log4j.properties内容举例如下：</strong><br />log4j.rootCategory=DEBUG, stdout, R<br /><br />#Console config<br />log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br />log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br />log4j.appender.stdout.layout.ConversionPattern=&lt;%d&gt; &lt;%-5p&gt; &lt;%c&gt; - %m(%F:%M:%L)%n<br /><br />#File config<br />log4j.appender.R=org.apache.log4j.RollingFileAppender<br />log4j.appender.R.File=${catalina_home}/logs/test.log<br />log4j.appender.R.MaxFileSize=100KB<br />log4j.appender.R.MaxBackupIndex=0<br />log4j.appender.R.layout=org.apache.log4j.PatternLayout<br />log4j.appender.R.layout.ConversionPattern=&lt;%d&gt; &lt;%-5p&gt; &lt;%c&gt; - %m(%F:%M:%L)%n<br /><br />#Package config<br />log4j.logger.org.apple=DEBUG<br />log4j.logger.org.apache.commons=ERROR<br />log4j.logger.org.springframework=ERROR<br />log4j.logger.org.apache.struts=ERROR <br /><br /><strong>&gt; log4j.xml内容举例如下：</strong><br />&lt;?xml version="1.0" encoding="UTF-8" ?&gt;<br />&lt;!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"&gt;<br />&lt;log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"&gt;<br />    &lt;appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"&gt;<br />        &lt;layout class="org.apache.log4j.PatternLayout"&gt;<br />            &lt;param name="ConversionPattern"<br />                value="%p - %C{1}.%M(%L) | %m%n"/&gt;<br />        &lt;/layout&gt;<br />    &lt;/appender&gt;<br />    &lt;logger name="org.apache"&gt;<br />        &lt;level value="WARN"/&gt;<br />    &lt;/logger&gt;<br />    &lt;logger name="net.sf.hibernate"&gt;<br />        &lt;level value="WARN"/&gt;<br />    &lt;/logger&gt;<br />    &lt;logger name="org.springframework"&gt;<br />        &lt;level value="WARN"/&gt;<br />    &lt;/logger&gt;<br />    &lt;logger name="org.apple"&gt;<br />        &lt;level value="DEBUG"/&gt;<br />    &lt;/logger&gt;<br />    &lt;root&gt;<br />        &lt;level value="WARN"/&gt;<br />        &lt;appender-ref ref="CONSOLE"/&gt;<br />    &lt;/root&gt;<br />&lt;/log4j:configuration&gt;<br /><br /><configuration xmlns:log4j="http://jakarta.apache.org/log4j/"><logger name="org.apache" /><logger name="org.appfuse" /><root />2) 在需要做日志处理的类中，如下处理：<br />private static Log log = LogFactory.getLog(ClassName.class);</configuration></div>
<img src ="http://www.blogjava.net/idkkk/aggbug/74112.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/idkkk/" target="_blank">Kevin Xia</a> 2006-10-09 16:49 <a href="http://www.blogjava.net/idkkk/archive/2006/10/09/74112.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DocBook的技术写作</title><link>http://www.blogjava.net/idkkk/archive/2006/08/21/64825.html</link><dc:creator>Kevin Xia</dc:creator><author>Kevin Xia</author><pubDate>Mon, 21 Aug 2006 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/idkkk/archive/2006/08/21/64825.html</guid><wfw:comment>http://www.blogjava.net/idkkk/comments/64825.html</wfw:comment><comments>http://www.blogjava.net/idkkk/archive/2006/08/21/64825.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/idkkk/comments/commentRss/64825.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/idkkk/services/trackbacks/64825.html</trackback:ping><description><![CDATA[看过很多开源软件的reference，感觉确实很棒！有pdf的，有html的，都是用docbook进行书写的，docbook作为纯技术的写作工具出现，包含很多自己的标签，但是它严格的要求显示格式和数据分离，而且是纯文本的方式，没有word的困扰(版本控制时与以前的版本无法进行比对)，写完后通过ant进行build，提供pdf、html的xslt就会生成这2种格式的文档，方便简单。<img src ="http://www.blogjava.net/idkkk/aggbug/64825.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/idkkk/" target="_blank">Kevin Xia</a> 2006-08-21 16:50 <a href="http://www.blogjava.net/idkkk/archive/2006/08/21/64825.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux上CVS服务器的搭建</title><link>http://www.blogjava.net/idkkk/archive/2006/03/13/35096.html</link><dc:creator>Kevin Xia</dc:creator><author>Kevin Xia</author><pubDate>Mon, 13 Mar 2006 09:48:00 GMT</pubDate><guid>http://www.blogjava.net/idkkk/archive/2006/03/13/35096.html</guid><wfw:comment>http://www.blogjava.net/idkkk/comments/35096.html</wfw:comment><comments>http://www.blogjava.net/idkkk/archive/2006/03/13/35096.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/idkkk/comments/commentRss/35096.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/idkkk/services/trackbacks/35096.html</trackback:ping><description><![CDATA[<DIV>在Linux7.3、Linux9以及Linux ES3上直接内置了cvs，以下主要是需要配置服务器端：</DIV>
<DIV><STRONG>1) &nbsp;查看是否安装cvs</STRONG><BR>#rpm -qa | grep cvs<BR>注：一般安装在/usr/bin/cvs,如果未安装到<A href="http://www.cvshome.org/">www.cvshome.org</A>下载一个最新的rpm安装即可 </DIV>
<DIV><BR><STRONG>2)&nbsp; 建立cvs用户组,便于管理cvs用户<BR></STRONG>#groupadd cvs </DIV>
<DIV><BR><STRONG>3) &nbsp;建立cvs组的cvsroot用户和所属的目录<BR></STRONG>#useradd -g cvs -G cvs -d /home/cvsroot cvsroot </DIV>
<DIV><BR><STRONG>4)&nbsp; 为cvsroot用户添加密码<BR></STRONG>#passwd cvsroot </DIV>
<DIV><BR><STRONG>5) &nbsp;改变/home/cvsroot的目录属性<BR></STRONG>#chmod 775 /home/cvsroot </DIV>
<DIV><BR><STRONG>6) &nbsp;初始化cvs源代码库,此操作生成目录/home/cvsroot/CVSROOT,其下为一些初始化文件<BR></STRONG>#cvs -d /home/cvsroot init </DIV>
<DIV><BR><STRONG>7) &nbsp;创建可以登陆cvs服务的用户及密码,需要创建文件passwd<BR></STRONG>#vi /home/cvsroot/CVSROOT/passwd<BR>weiqiong:xxxxxx:cvsroot<BR>chenxu:xxxxxx:cvsroot<BR><BR>此文件的意思是weiqiong和chenxu两个用户可以登陆cvs服务器,登陆后其权限为用户cvsroot的权限<BR>注：cvs用户和服务器用户是可以不一样的</DIV>
<DIV><BR><STRONG>8) &nbsp;xxxxxx为密码,由以下文件生成:</STRONG><BR>#vi /home/cvsroot/passwdgen.pl<BR>#!/usr/bin/perl<BR>srand (time());<BR>my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";<BR>my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);<BR>my $plaintext = shift;<BR>my $crypttext = crypt ($plaintext, $salt);<BR>print "${crypttext}\n"; </DIV>
<DIV><BR>将文件的属性修改为可以执行: chmod 755 passwdgen.pl</DIV>
<DIV><BR><STRONG>9) &nbsp;如果需要密码为:test,则敲入:<BR></STRONG>#./passwdgen.pl "test"<BR>回车即可得到加密密码,用其替换passwd文件中的xxxxxx </DIV>
<DIV><BR><STRONG>10) &nbsp;加入cvs服务(如果缺省有cvs服务,就可以不用加)<BR></STRONG>#vi /etc/services<BR>cvspserver 2401/tcp #pserver cvs service<BR>cvspserver 2401/udp #pserver cvs service </DIV>
<DIV><BR><STRONG>11) &nbsp;使用的是xinetd方式,所以在xinetd.d目录下添加需要启动的服务:<BR></STRONG>#cd /etc/xinetd.d<BR>#vi cvspserver<BR>service cvspserver<BR>{<BR>&nbsp; disable = no<BR>&nbsp; flags = REUSE<BR>&nbsp; socket_type = stream<BR>&nbsp; wait = no<BR>&nbsp; user = root<BR>&nbsp; server = /usr/bin/cvs<BR>&nbsp; server_args = -f --allow-root=/home/cvsroot pserver<BR>&nbsp; log_on_failure += USERID<BR>}</DIV>
<DIV></DIV>
<DIV><BR>注：如果有多个repository的话，按照下面的方式修改：</DIV>
<DIV>server_args = -f --allow-root=/home/cvsroot --allow-root=/home/ncrroot pserver</DIV>
<DIV>然后添加对应的用户ncrroot，让该用户的根是/home/ncrroot</DIV>
<DIV>passwd的最后为新建的用户名ncrroot</DIV>
<DIV></DIV>
<DIV><BR><STRONG>12) &nbsp;重新启动xinetd:<BR></STRONG>#/etc/rc.d/init.d/xinetd restart </DIV>
<DIV><BR><STRONG>13) &nbsp;检查cvspserver服务是否已经启动</STRONG><BR>#netstat -l | grep cvspserver<BR>tcp 0 0 *:cvspserver *:* LISTEN </DIV>
<DIV><BR><STRONG>14) &nbsp;测试:<BR></STRONG>cvs -d :pserver:xiajx@192.168.100.92:/home/cvsroot login<BR>敲入命令回车后提示输入xiajx的密码,你按照自己设置的密码输入<BR>如果没有什么错误信息出现就是成功了(我的机器IP地址是192.168.100.92,也可以用localhost).<BR><BR><EM>PS：如果是迁移原有cvs的repository的话，只需要将原有的repository整个拷贝到/home/cvsroot中即可.</EM></DIV><img src ="http://www.blogjava.net/idkkk/aggbug/35096.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/idkkk/" target="_blank">Kevin Xia</a> 2006-03-13 17:48 <a href="http://www.blogjava.net/idkkk/archive/2006/03/13/35096.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开源软件在项目中的使用</title><link>http://www.blogjava.net/idkkk/archive/2006/02/21/31782.html</link><dc:creator>Kevin Xia</dc:creator><author>Kevin Xia</author><pubDate>Tue, 21 Feb 2006 05:11:00 GMT</pubDate><guid>http://www.blogjava.net/idkkk/archive/2006/02/21/31782.html</guid><wfw:comment>http://www.blogjava.net/idkkk/comments/31782.html</wfw:comment><comments>http://www.blogjava.net/idkkk/archive/2006/02/21/31782.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/idkkk/comments/commentRss/31782.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/idkkk/services/trackbacks/31782.html</trackback:ping><description><![CDATA[
		<p>开源软件在越来越多的项目中被使用，遵循不重新发明轮子的规则，合理的使用开源组件能极大的提高工作效率和软件的健壮性、一致性，现列举下我常用的一些开源软件：</p>
		<p>Linux：免费的操作系统</p>
		<p>JBoss：免费的J2EE服务器</p>
		<p>Apache：最流行的Web服务器</p>
		<p>Tomcat：JSP容器，其他还有Resin</p>
		<p>Mysql：自由软件数据库系统</p>
		<p>Eclipse：极其好用的IDE，内置CVS、Junit、Ant功能，有丰富的插件支持，还有NetBean</p>
		<p>CVS：版本控制系统，开发时必不可少的工具，还有subversion</p>
		<p>Struts：比较成熟的MVC实现，其他还有Webwork、Spring MVC</p>
		<p>Spring：IOC模式的轻量级容器，组件式的开发模式，还有PicoContainer</p>
		<p>Hibernate：持久层的不错选择，其他还有Ibatis、OJB、JDO、Entity Bean、JDBC<br /></p>
		<p>XDoclet：自动代码生成工具</p>
		<p>JUnit：单元测试框架，让编写单元测试更加简单，有很多扩展可以使用</p>
		<p>Log4j：完善的日志管理工具</p>
		<p>CheckStyle：代码规范审核工具</p>
		<p>Ant：让所有事情都变得简单，统一，协调，结合AntHill OS实现日构建</p>
<img src ="http://www.blogjava.net/idkkk/aggbug/31782.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/idkkk/" target="_blank">Kevin Xia</a> 2006-02-21 13:11 <a href="http://www.blogjava.net/idkkk/archive/2006/02/21/31782.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用VNC远程控制服务器</title><link>http://www.blogjava.net/idkkk/archive/2006/02/21/31781.html</link><dc:creator>Kevin Xia</dc:creator><author>Kevin Xia</author><pubDate>Tue, 21 Feb 2006 05:05:00 GMT</pubDate><guid>http://www.blogjava.net/idkkk/archive/2006/02/21/31781.html</guid><wfw:comment>http://www.blogjava.net/idkkk/comments/31781.html</wfw:comment><comments>http://www.blogjava.net/idkkk/archive/2006/02/21/31781.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/idkkk/comments/commentRss/31781.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/idkkk/services/trackbacks/31781.html</trackback:ping><description><![CDATA[在项目中经常需要控制服务器的图形界面，服务器类型有windows或者linux的，需要经常跑来跑去十分不方便，采用VNC软件就可以很容易做到远程控制了。VNC是Virtual Network Computing的缩写，包括服务器端(被控端)和客户端(主控端)两个部分，<BR>只有服务器端软件需要安装，客户端软件直接可以运行。<BR><BR>1) 下载vnc-4.0-x86_linux.tar.gz，直接解压缩<BR>#tar zxvf vnc-4.0-x86_linux.tar.gz<BR>#cd vnc-4.0-x86_linux<BR>#./vncinstall /usr/local/bin /usr/local/man<BR><BR>2) 设置访问密码<BR>#vncpasswd<BR><BR>3) 启动vnc服务<BR>#vncserver<BR><BR>3) 修改VNC内定的桌面管理程序<BR>#vncserver -kill :1<BR>#vi /root/.vnc/xstartup<BR>把所有内容的行前加上#,再在接尾部份加上以下内容：<BR>startkde &amp;<BR><BR>#vncserver<BR><BR>4) 运行vncviewer<BR>假设vnc server的ip地址是192.168.100.16:1，输入192.168.100.16:1，回车敲入密码即可；<BR>假设通过浏览器来使用vnc的话，浏览地址为：<A href="http://192.168.100.16:5801">http://192.168.100.16:5801</A><BR><BR><FONT color=#000000>PS：使用浏览器访问时，其中的端口号是不定的，端口号 = 显示数字 + 5800.</FONT> <img src ="http://www.blogjava.net/idkkk/aggbug/31781.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/idkkk/" target="_blank">Kevin Xia</a> 2006-02-21 13:05 <a href="http://www.blogjava.net/idkkk/archive/2006/02/21/31781.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>