2012年1月20日

在 Windows下用 Visual Studio 编译 OpenSSL

OpenSSL官方网站下载OpenSSL源代码包

以OpenSSL 1.0.0g版本为例

1、下载 openssl-1.0.0g.tar.gz

2、安装 ActivePerl, 这里使用最新ActivePerl 5.14.2.1402 版本因为初始化的时候, 需要用到 perl 解释器。

3、使用 VS2010 下的 Visual Studio 2010 Command Prompt 进入控制台模式 (这个模式会自动设置各种环境变量,根据编译32位、64位、Itanium自己选择)。

4、解压缩 openssl 源代码包,进入 openssl 的根目录, 如 E:\openssl-1.0.0g。

5、perl configure VC-WIN32

必须在 c:\openssl-1.0.0g 目录下执行该命令, 否则找不到 Configure 文件, 这时就必须指定完整的 Configure 文件路径。

64编译的话 Win64/x64 执行 perl Configure VC-WIN64A;Win64/IA64 执行 perl Configure VC-WIN64I。

6、ms\do_ms

在 c:\openssl-1.0.0g 目录下执行 ms\do_ms 命令

64位编译的话 Win64/x64 执行 ms\do_win64a ;Win64/IA64 执行 ms\do_win64i。

7、在正式编译之前

(1). 找到 c:\openssl-1.0.0g\ms\ntdll.mak 文件, 用记事本打开, 搜索 “/MD” 字符串, 替换成 “/MT”, 这将导致静态链接 C 运行, 避免了在目标机器上安装 VC 再发行包等等操作。

(2) 如果在VC6中编译,需要找到 c:\openssl-1.0.0g\e_os.h 文件, 用记事本打开, 找到

#  if !defined(OPENSSL_USE_IPV6)
# if defined(AF_INET6) && !defined(OPENSSL_SYS_BEOS_BONE) && !defined(NETWARE_CLIB)
# define OPENSSL_USE_IPV6 1
# else
# define OPENSSL_USE_IPV6 0
# endif
# endif

替换成

#if !defined(_MSC_VER) || (defined(_MSC_VER) && _MSC_VER > 1200 )
# if !defined(OPENSSL_USE_IPV6)
# if defined(AF_INET6) && !defined(OPENSSL_SYS_BEOS_BONE) && !defined(NETWARE_CLIB)
# define OPENSSL_USE_IPV6 1
# else
# define OPENSSL_USE_IPV6 0
# endif
# endif
#else
# if !defined(OPENSSL_USE_IPV6)
# define OPENSSL_USE_IPV6 0
# endif
#endif

这一步的目的是,在 VC6 下编译时, 避免使用 IPv6 特性, 因为 VC6 不支持。这里我们忽略这步。

(3)找到 c:\openssl-1.0.0g\ms\ntdll.mak 文件, 用记事本打开可以根据需要修改默认安装路径(静态链接库编译版本打开nt.mak),默认路径如下:

INSTALLTOP=\usr\local\ssl
OPENSSLDIR=\usr\local\ssl

7、编译动态链接库版本: nmake -f ms\ntdll.mak

完成编译后,输出的动态链接库版本文件在 out32dll 里面,包括应用程序的可执行文件, lib 文件和 dll 文件。

8、测试动态链接库版本: nmake -f ms\ntdll.mak test

9、安装动态链接库版本: nmake -f ms\ntdll.mak install

10、编译静态链接库版本: nmake -f ms\nt.mak

完成编译后,输出的静态链接库版本文件在 out32 里面, 包括应用程序的可执行文件和 lib 文件。

11、测试静态链接库版本: nmake -f ms\nt.mak test

12、安装动态链接库版本: nmake -f ms\nt.mak install



posted @ 2012-01-20 11:14 中国蓝天 阅读(330) 评论(0) 编辑

2011年11月19日

Linux下Firefox汉化方法

不知道为什么更新Firefox后变成英文界面,找了一下可以通过以下方法解决:
通过下面地址
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/你使用的版本/linux-i686/xpi/
找 zh-CN.xpi 下载可以,用火狐浏览文件 会提示你安装,然后安装一下就行了
也可以在http://ftp.mozilla.org/pub/mozilla.org/firefox/路径下开始找

按提示重启 Firefox  就行了!

posted @ 2011-11-19 23:10 中国蓝天 阅读(82) 评论(0) 编辑

2011年9月9日

Oracle Instant Client的安装和使用

Oracle Instant Client的安装和使用

根据自己需求到Oracle网站(http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html)下载相应的Instant Client版本软件包,各软件包的描述如下:

Instant Client Package

Description

Notes

Basic

All files required to run OCI, OCCI, and JDBC-OCI applications

OCI

OCCI

JDBC

Basic Lite

Smaller version of the Basic, with only English error messages and Unicode, ASCII, and Western European character set support (10.2 only)

OCI

OCCI

JDBC

JDBC Supplement*

Additional(附加的) support for XA, Internationalization, and RowSet operations under JDBC

JDBC

SQL*Plus*

Additional libraries and executable(可执行的) for running SQL*Plus with Instant Client

SQL*Plus 10.2

SQL*Plus 11.2

ODBC Supplement*

Additional(附加的) libraries for enabling ODBC applications with Instant Client (Not all platforms)

ODBC

SDK*

Additional header files and an example makefile for developing Oracle applications with Instant Client

 

ODAC*

Includes ODP.NET, Oracle Services for MTS, Oracle Providers for ASP.NET, Oracle Provider for OLE DB, and OO4O with Oracle Instant Client

 

*的为可选软件包。

 

1、以11.2.0.2.0版本为例,下载Basic软件包(要支持中文只能下载Basic软件包)

2、解压缩必须包到C:\Oracle\instantclient_11_2

3、设置环境变量:

NLS_lANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

TNS_ADMIN=C:\Oracle\instantclient_11_2

Path=C:\Oracle\instantclient_11_2;%Path%

为避免访问数据库时出现中文乱码,NLS_lANG的设置很重要;TNS_ADMIN如不设置,tnsnames.ora默认寻址为Instant Client目录下的network\ADMIN目录;%Path%为原有Path变量。

4、参照下面内容编写tnsnames.ora,并保存到安装目录:C:\Oracle\instantclient_11_2

# TNSNAMES.ORA Network Configuration File: C:\oracle\ora90\network\admin\tnsnames.ora

# Generated by Oracle configuration tools.

 

#sample

 

#DATABASENAME =

#  (DESCRIPTION =

#    (ADDRESS_LIST =

#      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

#    )

#    (CONNECT_DATA =

#      (SERVICE_NAME = servicename)

#    )

#  )

 

如果有要连接多个Oracle实例,请继续往该文件中加入其它实例的配置。

5、测试:

C:\Oracle\instantclient_11_2>sqlplus /nolog

 

SQL*Plus: Release 11.2.0.2.0 Production on Fri Sep 9 09:42:06 2011

 

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

 

SQL> conn username/password @ <连接字符串>

 

至此,安装已经完成。PLSQL Developer等工具,以及应用软件都可以正常使用了。

 

附录:Linux下环境变量设置

如解压到了/usr/local/oracle目录,配置好TNS_ADMINLD_LIBRARY_PATH等,复制到.bashrc文件部分内容如下:

export ORACLE_HOME=/usr/local/oracle

export TNS_ADMIN
=$ORACLE_HOME/NETWORK/ADMIN

export LD_LIBRARY_PATH
=$ORACLE_HOME

export SQLPATH
=$ORACLE_HOME

export NLS_LANG
=AMERICAN_AMERICA.ZHS16GBK

PATH=$PATH:$ORACLE_HOME

export
PATH

 

posted @ 2011-09-09 09:56 中国蓝天 阅读(1508) 评论(0) 编辑

2011年8月18日

查看SQL Server数据库表、索引视图等占用的空间大小

第一种方法(较简单,看的比较吃力):

EXEC Sp_msforeachtable "EXEC Sp_spaceused '?'"


第二种方法(较复杂,但看的比较清楚,原作者不详):

IF NOT EXISTS (SELECT *
               FROM   dbo.sysobjects
               WHERE  id = Object_id(N'[dbo].[tablespaceinfo]')
                      AND Objectproperty(id, N'IsUserTable') = 1)
  CREATE TABLE tablespaceinfo --创建结果存储表
    (
       nameinfo   VARCHAR(50),
       rowsinfo   INT,
       reserved   VARCHAR(20),
       datainfo   VARCHAR(20),
       index_size VARCHAR(20),
       unused     VARCHAR(20)
    )

DELETE FROM tablespaceinfo --清空数据表
DECLARE @tablename VARCHAR(255) --表名称
DECLARE @cmdsql VARCHAR(500)
DECLARE Info_cursor CURSOR FOR
  SELECT o.name
  FROM   dbo.sysobjects o
  WHERE  Objectproperty(o.id, N'IsTable') = 1
         AND o.name NOT LIKE N'#%%'
  ORDER  BY o.name

OPEN Info_cursor

FETCH NEXT FROM Info_cursor INTO @tablename

WHILE @@FETCH_STATUS = 0
  BEGIN
      IF EXISTS (SELECT *
                 FROM   dbo.sysobjects
                 WHERE  id = Object_id(@tablename)
                        AND Objectproperty(id, N'IsUserTable') = 1)
        EXECUTE Sp_executesql
          N'insert into tablespaceinfo exec sp_spaceused @tbname',
          N'@tbname varchar(255)',
          @tbname = @tablename

      FETCH NEXT FROM Info_cursor INTO @tablename
  END

CLOSE Info_cursor

DEALLOCATE Info_cursor

GO

--itlearner注:显示数据库信息
Sp_spaceused @updateusage = 'TRUE'

--itlearner注:显示表信息
SELECT *
FROM   tablespaceinfo
ORDER  BY Cast(LEFT(Ltrim(Rtrim(reserved)), Len(Ltrim(Rtrim(reserved))) - 2) AS INT) DESC 


第三种方法:

SELECT Object_name(id)                                 tablename,
       8 * reserved / 1024                             reserved_,
       Rtrim(8 * dpages / 1024) + 'Mb'                 used,
       8 * ( reserved - dpages ) / 1024                unused,
       8 * dpages / 1024 - rows / 1024 * minlen / 1024 free,
       rows,
       *
FROM   sysindexes
WHERE  indid = 1
ORDER  BY reserved_ DESC

参考:http://msdn.microsoft.com/zh-cn/library/ms188776.aspx

posted @ 2011-08-18 17:22 中国蓝天 阅读(213) 评论(0) 编辑

2011年8月12日

修复UBUNTU的NetworkManager applet不见方法

解決方式如下:

1. 修改/etc/dbus-1/system.d/NetworkManager.conf 和 /etc/dbus-1/system.d/nm-applet.conf
將下列红色字,如果为deny,改allow
<policy context=default>
<allow own="org.freedesktop.NetworkManager"/>
<allow send_destination="org.freedesktop.NetworkManager"/>
<allow send_interface="org.freedesktop.NetworkManager"/>
</policy>

2. 重新启动 dbus
sudo /etc/init.d/dbus restart
3. 停止 NetworkManager
sudo /etc/init.d/NetworkManager stop

4. 刪除 /etc/network/interfaces 或是更名(rename)
sudo rm /etc/network/interfaces

5. 重新启动 NetworkManager
sudo /etc/init.d/NetworkManager start

6. 执行nm-applet

posted @ 2011-08-12 19:29 中国蓝天 阅读(236) 评论(0) 编辑

2011年8月5日

SQL Server 索引重建或索引重組

摘要: 查询索引的碎裂状态T-SQL语法(适用于SQL Server 2005以上):SELECT OBJECT_NAME(dt.object_id) , si.name , dt.avg_fragmentation_in_percent, dt.avg_page_space_used_in_percentFROM (SELECT object_id , index_id , avg_fragmentation_in_percent, avg_page_space_used_in_percent FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, N阅读全文

posted @ 2011-08-05 09:13 中国蓝天 阅读(256) 评论(0) 编辑

Telnet Windows Server时,提示NTLM authenticatio错误解决方法

摘要: 解决方法:在服务器上单击开始,运行,键入tlntadmn,单击OK. 键入5停止服务; 键入3; 键入7; 键入y并修改此值为0,禁用NTLM,使用明文密码; 连续键入0返回到顶级菜单; 键入4重新启动服务; 退出Telnet服务器管理程序。 在客户端登录。阅读全文

posted @ 2011-08-05 09:10 中国蓝天 阅读(46) 评论(0) 编辑

[学习笔记]FreeBSD 7.1下安装Lighttpd Web Server + MySQL Server + PHP

摘要: 1.最小化安装FreeBSD 7.12.设置IP地址、网关、DNS等信息方法一(临时性):# ifconfig le0 192.168.0.173 /网卡le0可以通过ifconfig -a得到,不同机器名字不一定相同# route add default 192.168.0.254# ee /etc/resolv.conf 添加1行 nameserver 192.168.0.254 /也可使用OpenDNS提供的DNS地址:208.67.222.222、 208.67.220.220方法二(永久性):# ee /etc/rc.conf 添加2行 ifconfig_le0="inet阅读全文

posted @ 2011-08-05 09:05 中国蓝天 阅读(67) 评论(0) 编辑

ubuntu下配置NTP Server注意地方

摘要: 1./etc/ntp.conf 文件是Linux NTP的主要配置文件,你可以设置NTP服务器的ip地址。2.有些时候除非取消notrust、nomodify、notrap配置,client段的ntp服务才能有效工作。我的ntp.conf内容: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 driftfile /var/lib/ntp/ntp.drift statistics loopstats peerstats clockstats filegen loopstats file loopstats type 阅读全文

posted @ 2011-08-05 08:57 中国蓝天 阅读(377) 评论(0) 编辑

恢复Ubuntu面板默认设置

摘要: 打开终端,终端窗口打开之后,立即在提示符后面输入下列命令:gconftool --recursive-unset /apps/panel(注意:每个斜杠 “/” 后面没有空格)接下来输入下列命令:rm -rf ~/.gconf/apps/panel最后还需要执行:pkill gnome-panel接下来,Ubuntu 默认的上下两栏面板就会恢复默认值,出现顶部+底部各一面板的默认布局阅读全文

posted @ 2011-08-05 08:50 中国蓝天 阅读(134) 评论(0) 编辑

仅列出标题  下一页

导航

统计

公告