2008年12月17日星期三
2008年12月16日星期二
如何去掉WindowsXP非正版验证标志
新建文本文件,输入下面这些内容或者复制到记事本
ON ERROR RESUME NEXT
Dim VOL_PROD_KEY
if Wscript.arguments.count<1 then
VOL_PROD_KEY=InputBox("Powered By www.pcpxp.com"&vbCr&vbCr&" 本程序将自动替换你当前 Windows 的序列号,通过微软验证完全正版。"&vbCr&vbCr&"序列号(OEM版无效,默认版本为 XP VLK):","Windows XP序列号自动更换器","MRX3F-47B9T-2487J-KWKMF-RPWBY")
if VOL_PROD_KEY="" then
Wscript.quit
end if
else
VOL_PROD_KEY = Wscript.arguments.Item(0)
end if
VOL_PROD_KEY = Replace(VOL_PROD_KEY,"-","") 'remove hyphens if any
for each Obj in GetObject("winmgmts:{impers}").InstancesOf ("win32_WindowsProductActivation")
result = Obj.SetProductKey (VOL_PROD_KEY)
if err = 0 then
Wscript.echo "OK!去微软验证吧!"
end if
if err <> 0 then
Wscript.echo "替换失败!输入的 CD-KEY 与当前的版本不匹配。"
Err.Clear
end if
Next
然后将以上文本保存为 key.vbs 双击执行即可。
这样您的电脑就可以通过windows XP的正版验证啦
方法二:
1运行regedit进入注册表,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\WgaLogon,删除它,重新启动。wgatray.exe就不会自动启动了,讨厌的“你可能是盗版软件的受害者”也就不见了。 2把系统盘:\windows\system32中的wgatray.exe删除,烦人的“”没有了。(建议在安全模式下进行:启动电脑中按F8进入安全模式) 3彻底清除相关多余垃圾,运行搜索文件wgatray,在另外的文件夹下还有,统统删除。
方法三:
首些找一个正版的CD-KEY:MRX3F-47B9T-2487J-KWKMF-RPWBY(这个我用过,可以的),花您五分钟加重启。 点击 “开始”=>“运行” 在运行中输入“regedit”,完成后点击“确定” 进入注册表编辑器后,选择“编辑”=>“查找” 在“查找目标”中输入“OOBETimer”,完成后点击“查找下一个” (找不到?) 正在查找,请您稍等…… 找到OOBETimer! 对着它点击右键选择“修改二进制数据” 在“数值数据”中,至少修改一个字节(即任意一个英文字母或数字),如把FF改为F2等。之后点击“确定” 完成后退出注册表 单击开始 => 运行 输入%systemroot%\system32\oobe\msoobe.exe /a 选择通过电话激活以后点击下一步 点击“更改产品密钥” 输入新的产品密钥以后选择“更新” 然后选择以后提醒我 重启计算机 这样就完完全全的成为正版用户了。微软在线更新、正版增值计划等等,只有正版用户才能享受的待遇,您即刻便能享受! 100%OK的``我自己也是这样改的`
2008年11月26日星期三
利用JavaMail收/发Gmail邮件(SSL)
转[http://www.cnblogs.com/ufoer23/archive/2006/04/06/368728.html]
与其他邮箱不同的是Gmail提供的POP3和SMTP是使用安全套接字层SSL的,因此常规的JavaMail程序是无法收发邮件的,下面是使用JavaMail如何收取Gmail邮件以及发送邮件的代码:
1. 邮件收取
package lius.javamail.ssl;
import java.io.UnsupportedEncodingException;
import java.security.*;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeUtility;
/**
* 用于收取Gmail邮件
* @author Winter Lau
*/
public class GmailFetch {
public static void main(String argv[]) throws Exception {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
// Get a Properties object
Properties props = System.getProperties();
props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.pop3.socketFactory.fallback", "false");
props.setProperty("mail.pop3.port", "995");
props.setProperty("mail.pop3.socketFactory.port", "995");
//以下步骤跟一般的JavaMail操作相同
Session session = Session.getDefaultInstance(props,null);
//请将红色部分对应替换成你的邮箱帐号和密码
URLName urln = new URLName("pop3","pop.gmail.com",995,null,
"[邮箱帐号]", "[邮箱密码]");
Store store = session.getStore(urln);
Folder inbox = null;
try {
store.connect();
inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
FetchProfile profile = new FetchProfile();
profile.add(FetchProfile.Item.ENVELOPE);
Message[] messages = inbox.getMessages();
inbox.fetch(messages, profile);
System.out.println("收件箱的邮件数:" + messages.length);
for (int i = 0; i < messages.length; i++) {
//邮件发送者
String from = decodeText(messages[i].getFrom()[0].toString());
InternetAddress ia = new InternetAddress(from);
System.out.println("FROM:" + ia.getPersonal()+'('+ia.getAddress()+')');
//邮件标题
System.out.println("TITLE:" + messages[i].getSubject());
//邮件大小
System.out.println("SIZE:" + messages[i].getSize());
//邮件发送时间
System.out.println("DATE:" + messages[i].getSentDate());
}
} finally {
try {
inbox.close(false);
} catch (Exception e) {}
try {
store.close();
} catch (Exception e) {}
}
}
protected static String decodeText(String text)
throws UnsupportedEncodingException {
if (text == null)
return null;
if (text.startsWith("=?GB") || text.startsWith("=?gb"))
text = MimeUtility.decodeText(text);
else
text = new String(text.getBytes("ISO8859_1"));
return text;
}
}
2. 发送邮件
package lius.javamail.ssl;
import java.security.Security;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* 使用Gmail发送邮件
* @author Winter Lau
*/
public class GmailSender {
public static void main(String[] args) throws AddressException, MessagingException {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
// Get a Properties object
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
final String username = "[邮箱帐号]";
final String password = "[邮箱密码]";
Session session = Session.getDefaultInstance(props, new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}});
// -- Create a new message --
Message msg = new MimeMessage(session);
// -- Set the FROM and TO fields --
msg.setFrom(new InternetAddress(username + "@mo168.com"));
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("[收件人地址]",false));
msg.setSubject("Hello");
msg.setText("How are you");
msg.setSentDate(new Date());
Transport.send(msg);
System.out.println("Message sent.");
}
}
2008年11月25日星期二
如何使用Oracle SQLDeveloper 中连接MS SQLServer和MySQL数据库
一、连接至MySQL数据库
1.下载mysql的jdbc驱动, http://dev.mysql.com/downloads/ 免费,嘿嘿。
2.解压zip文件(我下载的版本是mysql-connector-java-5.1.5),我们要用的是mysql-connector-java-5.1.5-bin.jar文件。
/** 添加MySQL JDBC驱动的方法
a、将这个jar文件放在你的
\Tomcat6.0\lib下(Tomcat6版本)
\Tomcat5.5\commom\lib(Tomcat5.5或者5.0的版本)
b、也可以通过配置环境变量classpath,修改。
c、如果用的是Eclipse(MyEclipse),JB,NB可以导入包。
注意:这个文件可以放到3个不同的位置,作用范围也不同:
如果是linux系统:
/usr/java/jdk/jre/lib/ext――――――所有Java应用
/usr/local/resin/lib―――――――――所有JSP/Servlet应用
网站根目录/WEB-INF/lib 单个网站
如果放到resin的目录,重新启动resin即可:/etc/init.d/resin restart
如果是Win2000系统,放到类似的目录,如:
D:\jdk\jre\lib\ext D:\resin\lib 网站根目录\htdocs\WEB-INF\lib
*/
3. 运行SQL developer,选择菜单"Tools->Preferences",在打开的窗口中选择"database->Third Party JDBC Drivers"然后点击"Add Entry...",选择 mysql-connector-java-5.1.5-bin.jar (从你解压的文件夹中选择),点击确定。
4.然后新建连接,一切OK
二、连接到Ms SQL Server数据库
1.首先要到 http://sourceforge.net 下载 net.sourceforge.jdbc.driver,本人使用的版本是 jtds-1.2.2.jar
2.将压缩包中的jtds-1.2.2.jar复制到"<sql developer>/sqldeveloper/lib"文件夹或任意文件夹,也可以只解压缩在本地也可 :)
3. 运行SQL developer,选择菜单"Tools->Preferences",在打开的窗口中选择"database->Third Party JDBC Drivers"然后点击"Add Entry...",选择 jtds-1.2.2.jar (从你解压的文件夹中选择),点击确定。
4.然后新建连接,一切OK。
/** 如果连接不上SQL SERVER可能需要执行以下步骤:
1. 把JtdsXA.dll copy到<SQL SERVER 2000>\bin目录中
2. 以 sa login SQL Query Analyzer, 执行 instjtds.sql (执行一次失败可以执行多次,嘿嘿)
3. 做好一切后, 打开 sqldeveloper.exe, 创建新的Connection
4. 在 ORACLE SQL Developer中, 点File->New->选中 Database Connection,点确定
在弹出的UI中选择"SQLServer"页签, 再填写相关的Loginner及Pwd和Connection Name后
点一下Retrieve database按钮, 然后在其旁边的下接框中选取想要连接的Database就可以
了
5. 注意:密码一项不能为NULL, 密码为NULL的loginner需要更改密码后才能连接
*/
本文出自 "小脚丫" 博客,请务必保留此出处http://82584.blog.51cto.com/72584/108051
Ubuntu8.10上安装Oracle SQL Developer乱码解决
在Oracle下了一个1.5.1 No JRE版的。解压后./sqldeveloper.sh无法运行,终端的信息是ClassPath没有设置。查了一下资料,要顺利用起来,还需要分别做这么几件事情:
1、设置ClassPath
修改/sqldeveloper/bin/sqldeveloper.conf
在最后加一行SetJavaHome /usr/lib/jvm/java-6-sun/
2、因为用的zip解压包,因此记得$sudo chmod 744 sqldeveloper.sh
3、查询出来的字体是方块
原因很简单,JDK中不带中文字体,我们需要给它添加一下。
$cd $JAVA_HOME/jre/lib/fonts/
$sudo mkdir fallback
拷贝字体文件到这个目录下,8.10的字体目录在/usr/share/fonts/truetype/wqy下
$sudo cp /usr/share/fonts/truetype/wqy/wqy-zenhei.ttf /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback/
$sudo mkfontscale
$sudo mkfontdir
2008年11月17日星期一
为mysql添加root远程登录权限
默认情况下,MySQL之允许本地登录,需要修改/etc/mysql/my.cnf文件:
注释这一行:
bind-address=127.0.0.1 ==> #bind-address=127.0.0.1
对于需要远程登录的用户执行如下命令:
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "yourpasswd";
mysql> flush privileges;
Cron 表?? Cookbook
七. Cron 表达式 Cookbook
此处的 Cron 表达式 cookbook 旨在为常用的执行需求提供方案。尽管不可能列举出所有的表达式,但下面的应该为满足你的业务需求提供了足够的例子。
・分钟的 Cron 表达式
表 5.1. 包括了分钟频度的任务计划 Cron 表达式用法 表达式
每天的从 5:00 PM 至 5:59 PM 中的每分钟触发 0 * 17 * * ?
每天的从 11:00 PM 至 11:55 PM 中的每五分钟触发 0 0/5 23 * * ?
每天的从 3:00 至 3:55 PM 和 6:00 PM 至 6:55 PM 之中的每五分钟触发 0 0/5 15,18 * * ?
每天的从 5:00 AM 至 5:05 AM 中的每分钟触发 0 0-5 5 * * ?
・日上的 Cron 表达式
表 5.2. 基于日的频度上任务计划的 Cron 表达式用法 表达式
每天的 3:00 AM 0 0 3 * * ?
每天的 3:00 AM (另一种写法) 0 0 3 ? * *
每天的 12:00 PM (中午) 0 0 12 * * ?
在 2005 中每天的 10:15 AM 0 15 10 * * ? 2005
・周和月的 Cron 表达式
表 5.3. 基于周和/或月的频度上任务计划的 Cron 表达式用法 表达式
在每个周一,二, 三和周四的 10:15 AM 0 15 10 ? * MON-FRI
每月15号的 10:15 AM 0 15 10 15 * ?
每月最后一天的 10:15 AM 0 15 10 L * ?
每月最后一个周五的 10:15 AM 0 15 10 ? * 6L
在 2002, 2003, 2004, 和 2005 年中的每月最后一个周五的 10:15 AM 0 15 10 ? * 6L 2002-2005
每月第三个周五的 10:15 AM 0 15 10 ? * 6#3
每月从第一天算起每五天的 12:00 PM (中午) 0 0 12 1/5 * ?
每一个 11 月 11 号的 11:11 AM 0 11 11 11 11 ?
三月份每个周三的 2:10 PM 和 2:44 PM 0 10,44 14 ? 3 WED
八. 创建一个即刻触发的 Trigger
有时候,你需要立即执行一个 job。例如,想像一下,你正在构建一个 GUI 程序并允许用户能立刻执行。另一个例子,你或许已经检测到了某个 Job 未执行成功,因此你想要即刻重跑一次。在 Quartz 1.5,有几个方法被加入到了 TriggerUtils 类中,使得实现那些事很容易了。代码 5.4 展示了如何部署一个 job,只让它立即执行一次。
代码 5.4. 你可以用 TriggerUtils 来立即执行一个 Job
1. public class Listing_5_4 {
2. static Log logger = LogFactory.getLog(Listing_5_4.class);
3.
4. public static void main(String[] args) {
5. Listing_5_4 example = new Listing_5_4();
6. example.runScheduler();
7. }
8.
9. public void runScheduler() {
10. Scheduler scheduler = null;
11.
12. try {
13. // Create a default instance of the Scheduler
14. scheduler = StdSchedulerFactory.getDefaultScheduler();
15. scheduler.start();
16. logger.info("Scheduler was started at " + new Date());
17.
18. // Create the JobDetail
19. JobDetail jobDetail = new JobDetail("PrintInfoJob",
20. Scheduler.DEFAULT_GROUP,
21. PrintInfoJob.class);
22.
23. // Create a trigger that fires once right away
24. Trigger trigger = TriggerUtils.makeImmediateTrigger(0, 0);
25.
26. trigger.setName("FireOnceNowTrigger");
27.
28. scheduler.scheduleJob(jobDetail, trigger);
29. } catch (SchedulerException ex) {
30. logger.error(ex);
31. }
32. }
33. }
public class Listing_5_4 { static Log logger = LogFactory.getLog(Listing_5_4.class); public static void main(String[] args) { Listing_5_4 example = new Listing_5_4(); example.runScheduler(); } public void runScheduler() { Scheduler scheduler = null; try { // Create a default instance of the Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); scheduler.start(); logger.info("Scheduler was started at " + new Date()); // Create the JobDetail JobDetail jobDetail = new JobDetail("PrintInfoJob", Scheduler.DEFAULT_GROUP, PrintInfoJob.class); // Create a trigger that fires once right away Trigger trigger = TriggerUtils.makeImmediateTrigger(0, 0); trigger.setName("FireOnceNowTrigger"); scheduler.scheduleJob(jobDetail, trigger); } catch (SchedulerException ex) { logger.error(ex); } } }
在代码 5.4 中,TriggerUtils 的 makeImmediateTrigger() 方法被用来立即执行一个 Job。第一个参数是将要触发的次数。第二个参数是执行的间隔时间。为方便起见,这个方法的签名显示如下:
public static Trigger makeImmediateTrigger(int repeatCount, long repeatInterval);
TriggerUtils 类提供了许多便利的方法简化了 Trigger 的使用。确切地检查一下这个工具类中看看是否有你想要的东西。你还将在本书上看到更多的使用 TriggerUtils 的例子。
2008年11月16日星期日
关于ubuntu 下安装virtualbox
一、安装
1. 下载安装包。建议下载 Deb 包。
2. 准备依赖。VirtualBox 的正常使用需要 libxalan110 和 libxerces27 这两个包。所以,你要先行安装它们,可以使用下面的指令:
sudo apt-get install libxalan110 libxerces27
3. 安装编译工具及相关包。在安装过程中,要编译 VirtualBox 所用的内核模块。为此,你需要准备基本的编译工具及包,你可以使用下列指令来安装它们:
sudo apt-get install build-essential linux-headers-`uname -r`
4. 现在,转到所保存 VirtualBox 安装包的目录,通过下面的指令来安装它:
sudo dpkg -i VirtualBox_1.x.x_Ubuntu_feisty_i386.deb
在安装的过程中,VirtualBox 会要求你接受许可协议。另外,安装程序也会创建 vboxusers 用户组,并编译所需的内核模块。
5. 现在,你还不能启动 VirtualBox,因为你的当前用户还不属于 vboxusers 用户组。你可以使用下面的指令来将当前的用户(请使用你的用户名代替指令中的"youruser")添加到 vboxusers 用户组中:
sudo adduser youruser vboxusers
virtualbox 屏幕下移问题:
如果虚拟机的分辨率接近x的分辨率而导致部分界面在x边沿时,全屏后原来窗口管理器 title 的地方变为黑色条状区域,屏幕下移,windows的开始菜单显示在下一个桌面。
解决方法:全屏前把分辨率调小,全屏后右键把显示器分辨率调到同x一致,这样就不会有屏幕偏移。
二、桥接网络配置
一般而言,安装完VirtualBox设定网路时选择默认的NAT模式,Guest就可顺利联网了,但是这种方式比较死板,要作更有弹性的变化,应该采用桥接模式(Bridged),这里的桥接模式就如同VMware中的Bridged模式,Host与Guest在局域网(LAN)中的地位是相等的。
参考 virtualbox 安装后放在 VirtualBox 目录中的用户手册文件 UserManual.pdf 配置如下:
1. 在基于 Debian 和 Ubuntu 的系统上,首先要安装含有建立虚拟网络设备 ( TAP interfaces ) 的工具 uml-utilities 和桥接工具 bridge-utils:
sudo apt-get install uml-utilities
sudo apt-get install bridge-utils
为了使你的虚拟机能够访问网络接口,你必须将运行虚拟主机的用户的用户名(通常是你的ubuntu登录用户名)添加到uml-net用户组(请用你的用户名替换其中的"vboxuser"):
sudo gpasswd -a vboxuser uml-net
注意:为了使改动生效,请重新启动你的电脑。
2. 向你的 Debian 或者 ubuntu 操作系统描述你要添加的虚拟网络设备,编辑 /etc/network/interfaces:
sudo vim /etc/network/interfaces
在打开的文件后面添加下面的内容,将虚拟网络接口命名为 "tap0",指定该接口IP配置方法为手动,并指定使用该接口的用户(请用你的用户名替换其中的 "vboxuser"):
auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user vboxuser
3. 首次使用需要激活刚才建立的虚拟网络接口和网络桥:
sudo /sbin/ifup tap0
sudo /sbin/ifup br0
这个步骤只需要做一次,下次主机重新启动时,这个接口和桥将自动激活。
4. 另外还需要在 /etc/network/interfaces 中加入如下内容,建立一个名叫 "br0" 的桥,该桥的IP配置方法为通过DHCP配置,主机中的所有网络接口,也包括tap0这个虚拟网络接口,都将建立在这个桥之上:
auto br0
iface br0 inet dhcp
bridge_ports all tap0
在这里你可以根据自己的网络状况做相应的更改,你可以使网络桥使用静态 IP:
iface br0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
5. 让 virtualbox 使用这个虚拟网络接口,启动 virtualbox,在主界面上选中要使用刚才建立的虚拟网络接口tap0的虚拟机,点"设置",在弹出的窗口中选"网络",选中其中一块网卡(通常为 "网络适配器 0"),选中"启用网络适配器","连接到"后面选 "Host Interface",选中"接入网线",然后在"主机网络界面名称"中填入刚才建立的虚拟网络接口的名字 "tap0",确定。同样的你也可以使用 VBoxManage 的命令行工具(将 "My VM" 换成你的虚拟机名字 ):
VBoxManage modifyvm "My VM" -hostifdev1 tap0
最后,配置主机和虚拟机的网络,使主机和虚拟机在同一个网段,这样主机和虚拟机就成了局域网中地位相同的两台机器了,可以互相访问了。
三、撤销网络桥
1. 禁用网桥和虚拟网卡:
sudo /sbin/ifdown br0
sudo /sbin/ifdown tap0
2. 将前面修改的 /etc/network/interfaces 文件还原
2008年11月10日星期一
Linux环境下MySQL数据库大小写区分问题
1、Linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;
2、用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;
lower_case_table_names参数详解:
lower_case_table_names = 0其中 0:区分大小写,1:不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。
3、如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种:
A、创建时设置:
CREATE TABLE T(
A VARCHAR(10) BINARY
);
B、使用alter修改:
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
C、mysql table editor中直接勾选BINARY项。
2008年11月5日星期三
ubuntu 安装RAR 压缩/解压缩程序
RAR 压缩/解压缩程序
Windows下的常用压缩格式zip,我们的应用程序 -> 附件 -> 归档管理器是可以解决的,但是另一种常用压缩格式rar在默认情况下就没有安装,我们这里安装程序RAR来解决这个问题,在命令行输入:
sudo apt-get install rar
来下载安装他,然后建立软链接
sudo ln -fs /usr/bin/rar /usr/bin/unrar
这样,以后只要在命令行输入unrar,就可以解压或者压缩文件了,安装完成后,归档管理器也同时集成了rar组件。
2008年11月4日星期二
Notes 8.0.1 for Linux(Ubuntu8.10)安装
随着 Linux 桌面级应用的普及,IBM 推出了基于 Linux 平台的多语言本地化版本的 Notes,给客户带来更多的体验和应用,下面我们开始 Notes on Linux 之旅。
从 Lotus Notes 8.0 开始,IBM 发布了支持 Linux 平台的多语言本地化版的客户端(标准版),除传统的 Notes 功能外还提供了许多新特性包括 IBM Lotus Productivity 工具、 Activities 、 IBM Lotus Samtime 以及 Composite Application Editor 选装, 其安装程序采用了 ISMP (Install Shield Multi-Platform) 技术,提供直观简易快捷的安装方式,用户无论是在 Windows 平台还是 Linux 平台都会得到一致的安装体验。本文以简体中文的安装为例详细介绍了 Notes 8.0.1 在 Linux 平台的安装配置卸载过程,并讨论了在安装使用中可能出现的问题。
最新发布的 8.0.1 提供了除英文外 25 门语言的本地化版本,安装包分为 8 组( CD/eSD ):
- 简体中文、繁体中文、日文、韩文
- (巴西)葡萄牙语,法语,西班牙语
- 意大利语,德语,加泰罗尼亚语( Catalan )
- 丹麦语,荷兰语,挪威语,芬兰语,瑞典语
- 捷克语,葡萄牙语
- 波兰语,俄语
- 希腊语,匈牙利语,土耳其语
- 斯洛伐克语,斯洛文尼亚语,泰语
|
表 1. Notes 8.0.1 for Linux 安装需求:
| 项目 | 描述 |
| 操作系统 |
|
| 处理器 | 兼容 Intel Pentium 或者更高 Pentium 4, 1.2GHz 或者更高 |
| 内存 | 最小 512 MB,推荐 1G 或更高 |
| 硬盘空间 | 安装目录( /opt )最小 1.5 G |
| 浏览器 | Mozilla firefox 1.5.x.x(GTK2 build) Mozilla SeaMonkey 1.0.xx(GTK2 build) Mozilla Runtime Environment(xulrunner) 1.8.0.x (GTK2 build) |
|
对于 Notes8.0.1 for Linux 本地化版本 客户可以采用图形化界面安装或者 Smart Upgrade 模式。这里主要介绍一下如何通过图形化界面安装。
注意 : Notes 8.0.x for Linux 不支持从 Notes 7.x 升级,必须安装到其他目录或者先卸载然后开始安装。
表 2. Notes 8.0.1 for Linux 安装包目录结构
+-deploy |
可执行文件 setup.sh 是安装程序的入口。
如果获得正确的 Notes 8.0.1 产品版本,在 CD 或以解包的安装程序中,可以找到安装程序 setup.sh ,以 root 用户身份并且选用期望使用的语言(如下例中选择简体中文)登录 Linux 系统,双击或者通过命令 ./setup.sh 来开始安装。
需要切换到英文环境,否则会有乱码。
需关闭桌面特效,否则会出现弹出的安装向导画面是空的(系统-》首选项-》外观-》视觉效果-》选择无)
装完后还要把安装目录权限改一下,否则无法运行:
sudo chown -R username:usergroup /opt/imb/lotus/notes
sudo chown -R username:usergroup /etc/lotus/notes
sudo chown -R username:usergroup /home/username/lotus/notes
注意 :必须用 root 用户安装。
当初始化完成后, 用户会得到一个 Lotus Notes 8.0.1 安装的欢迎界面, 如 图1 所示
图 1. Lotus Notes 8.0.1 安装的欢迎界面
这里点击 ‘取消(C)’ 退出安装,点击‘下一步(N) >’将得到 Lotus Notes 8.0.1 安装的软件许可证协议界面,如 图 2 所示。
图 2. Lotus Notes 8.0.1 安装的软件许可证协议界面
这个界面上,用户可以点击 ‘打印’ 打印整个许可证协议, 通过点击 ‘English’ 显示英文的许可证协议内容, 点击 ‘请阅读非 IBM 条款’获知相关协议内容。
如 果用户选择 ‘我不接受许可证协议中的任何条款’,点击 ‘下一步(N) >’ 会弹出一个对话框来让用户进一步确认是否拒绝这个许可协议,如果确认拒绝则退出安装, 如果不拒绝则返回本界面。如果用户同意接受这个许可协议,点击 ‘下一步(N) >’ 会弹出安装位置界面,指定安装位置后,点击 ‘下一步(N) >’ 会弹出安装选择语言本地化数据界面,如 图3 所示。
图 3. Lotus Notes 8.0.1 安装语言本地化数据界面
这 个界面上,用户通过复选框可以选择安装一个或多个语言本地化数据。点击 ‘下一步(N) >’ 会弹出安装可选功能部件界面,用户通过复选框可以选择安装零个或多个功能部件(“活动” | “Sametime” | “IBM Lotus Symphony” | “组合应用程序编辑器”)后,点击 ‘下一步(N) >’ 会弹出安装总结界面,如 图 4 所示
图 4. Lotus Notes 8.0.1 安装总结界面
点击 ‘安装(I)’ 弹出安装进度界面。最后,安装程序提示一个安装成功的界面,如 图5 所示
图 5. Lotus Notes 8.0.1 安装成功界面
点击 ‘完成’ 结束安装。
Smart Upgrade 安装需要 Domino 管理员配置相应的服务,客户端会得到提示有高版本可用或者可以通过 Smart Upgrade 菜单项来升级,这里就不详细描述了。
|
当安装完成后,如果使用默认安装目录,会发现 /opt/ibm/lotus/notes/res/zh_CN 和 /etc/lotus/notes/data/shared/MUI/zh_CN ,其中 ‘zh_CN’ 是在 图3 中所选的安装本地化数据语言的代码,如果选中多个,则这里会并列出现多个类似目录。在前者目录下是包含了本地化数据的资源文件,后者则包含了本地化数据的数据库模板文件。
|
当 Notes 8.0.1 for Linux 安装完成后,可以在系统应用程序的‘新应用程序’及‘办公’分组中找到 ‘Lotus Notes 8’ 图标,如图 6 所示
图 6. Lotus Notes 8 图标
注意: Lotus Symphony 系列应用程序是选装了 IBM Lotus Symphony 功能部件的话才会出现。
Louts Notes for Linux 只允许非 root 用户使用,作为 root 用户不可以运行,否则会出现警示窗口,如图 7 所示
图 7. 警示窗口
用户点击 ‘确定’ 后关闭。
重新以非 root 用户并选择简体中文作为语言登陆系统,双击 ‘ Lotus Notes 8 ’ 图标,出现 Lotus Notes 8 配置的闪屏界面 ,如图 8 所示
图 8. Lotus Notes 8 配置的闪屏界面
无需任何操作用户会得到下一个 IBM Lotus Notes 8.0.1 配置的欢迎界面,如图 9 所示
图 9. Lotus Notes 8 配置的欢迎界面
这里点击 ‘取消’ 退出配置,点击‘下一步(N) >’将得到 Lotus Notes 8.0.1 配置的用户信息界面,如 图10 所示。
图 10. Lotus Notes 8 配置的用户信息界面
这个界面上,用户输入使用的姓名, 如果选择 ‘连接到 Domino 服务器(W)’ ,需要输入 Domino 服务器名称,也可以先不连接任何服务器。点击 ‘下一步(N) >’ 会弹出选择用户 Notes 标识文件界面,如图 11 所示
图 11. Lotus Notes 8 配置的 Notes 标识文件界面
这个界面上,用户输入使用的 Notes 标识文件或者使用 ‘浏览(B)…’ 选择自己的表示文件。点击 ‘下一步(N) >’ 会弹出确认是否将标识文件拷贝到 Notes 目录中,确认后,会弹出配置其他服务界面,如图 12 所示
图 12. Lotus Notes 8 配置其他服务界面
这个界面上, 用户如果有需要配置其他服务,选择相应的服务,点击 ‘下一步(N) >’ 进行相应的配置,如果没有则 点击 ‘完成(F) >’ 会弹出 Notes 设置完成界面,如图 13 所示
图 13. Lotus Notes 8 设置完成界面
点击 ‘确定(O)’ 后, Lotus Notes 8.0.1 展现出来,可以开始全新体验了,如图 14 所示
图 14. Lotus Notes 8.0.1
|
Lotus Notes 8 支持图形和静默模式的卸载方法。当用户要卸载客户端时,必须以 root 用户来执行,在 Lotus Notes 8 安装目录下有 uninstaller.bin ,默认安装目录下是 /opt/ibm/lotus/notes/_uninstall/uninstaller.bin。
双击运行 uninstaller.bin ,初始化完成后出现 Lotus Notes 8.0.1 卸载欢迎界面,如图 15 所示
图 15. Lotus Notes 8.0.1 卸载的欢迎界面
这里点击 ‘取消(C)’ 退出卸载,点击‘下一步(N) >’将弹出卸载进度界面,如图 16 所示
图 16. Lotus Notes 8.0.1 卸载的进度界面
稍候之后,出现卸载完成界面,如图 17 所示
图 17. Lotus Notes 8.0.1 卸载的完成界面
点击 ‘完成(F)’ 结束卸载。
执行命令: |
|
- Q1: 为什么安装界面出现非正确的本地化语言?
- A1: 首先检查系统中 locale 是否正确;其次是否拿到正确的安装包(具体参见 Notes 8.0.1 for Linux 语言分组 );另外 Install Shield 不支持泰文和加泰罗尼亚语( Catalan ),所以使用正确的 locale 和安装包这两门语言的安装界面将保持英文。
Q2: 同时安装了多门语言,为什么配置后切换 locale 出现混杂语言界面?
A2: 在 Notes 客户端一个屏显示的内容实际是来自多个组件完成的,对每个用户当配置客户端时生成了一些数据库,如 bookmark.nsf , names.nsf 等,这些都是根据当时的会话 locale 生成的,当切换去另一个locale 启动 Notes 时,这些已经生成的数据库是不会自动再生成另一语言的,所以在一些界面会看到混杂的文字,解决方案是可以用安装的语言模板替换已生成的数据库设计;也可以 删除用户目录下的 lotus 目录, 然后重新配置生成。
|
本文以简体中文为例详细讨论了 Lotus Notes 8.0.1 for Linux 的本地化版本安装和配置、卸载过程以及常见问题。
|
学习
- 开始了解 IBM Lotus Notes and Domino V8 技术内容。
- 阅读 developerWorks 文章 “IBM Lotus Notes/Domino V8 新特性”
- 阅读 developerWorks 文章 “使用 IBM Lotus Notes/Domino V8 邮件收回功能”。
- 阅读 developerWorks 文章 “IBM Lotus Notes 8 中全新的 Out of Office 功能”。
- 阅读 developerWorks 文章 “Lotus Notes/Domino 8 邮件和日历新功能”。
- 阅读 developerWorks 文章 “IBM Lotus Notes 8 当中的搜索新功能”。
- 阅读 developerWorks 文章 “扩展 IBM Lotus Notes V8 侧栏和工具栏”。
- 阅读 developerWorks 文章 “在 IBM Lotus Notes V8 中实现日历重影”。
- 阅读 developerWorks 文章 “使用 Scheduler 用户界面在 IBM Lotus Notes V8 中寻找可用的时间”。
- 阅读 “Lotus Notes and Domino 8 Reviewer's Guide”。
- 阅读关于 IBM Lotus Notes 和 Domino V8 的更多信息。
获得产品和技术
- 免费下载为期 60 天的 IBM Lotus Notes V8 评估试用版。(英文版)
讨论
王振荣,IBM 软件开发中心软件工程师,负责 Notes8 Linux 本地化版本的开发和测试,有丰富的 Notes/Domino GVT、NLV 经验。 | ||