显示标签为“GNU/GPL Platform”的博文。显示所有博文
显示标签为“GNU/GPL Platform”的博文。显示所有博文

2008年6月5日

一些免费的 Name Server

Author: Hagen.GoO 转载请联系作者
MSN_contact: wantm009@hotmail.com
Keyword: 免费NS,Free Name Server,免费DNS,Free DNS,动态域名,Dynamic DNS,免费域名,南北互通
Quote:


  如果厌烦了国内域名注册商的垃圾服务,或者厌烦了隐藏转发要求备案的条条框框,你可以试试下列这些公司提供的免费 Name Server:

  http://www.everydns.net/
  用户可以把 EveryDNS 提供的 NameServer 配置成域名的 Primary NameServer、Secondary NameServer;并提供动态域名,域名转发等;支持 A CNAME NS MX AAAA 等常见记录。EveryDNS 的 NameServer 清单如下:
    ns1.everydns.net (位于美国圣地亚哥)
    ns2.everydns.net (位于美国圣何塞)
    ns3.everydns.net (位于荷兰)
    ns4.everydns.net (位于美国华盛顿)

  http://www.zoneedit.com/
  用户可以把 ZoneEdit 提供的 NameServer 配置成域名的 Primary NameServer、Secondary NameServer;并提供动态域名,域名转发,邮件转发等;支持 A CNAME NS MX TXT等常见记录。EveryDNS 的 NameServer 一般是 ns*.zoneedit.com,目前给出的是:(都位于北美)
    ns3.zoneedit.com
    ns16.zoneedit.com

  http://www.dnspod.com/
  DNSpod 是国内的智能DNS域名解析服务商,不提供 Secondary NameServer,动态域名,域名转发,邮件转发等附加内容,但是其比较专业的智能DNS非常适合国内南电信北网通互不畅通的,而做双线服务器的用户。DNSPod 的NS有:
    ns1.dnspod.net
    ns2.dnspod.net
    ns3.dnspod.net
    ns4.dnspod.net
    ns5.dnspod.net
    ns6.dnspod.net

  http://www.dnspark.net/
  用户可以把 DNSPack 提供的 NameServer 配置成域名的 Primary NameServer、Secondary NameServer,但免费用户数量是有限的;并提供简单邮件转发等;支持 A CNAME NS MX TXT记录。DNSPack 的 NameServer 有:
    ns1.dnspark.net (位于美国)
    ns2.dnspark.net (位于英国)
    ns3.dnspark.net (位于美国)
    ns4.dnspark.net (位于美国)
    ns5.dnspark.net (位于美国)

2006年10月26日

Trend Micro IMSS 中限制邮件大小的设置

Author: Hagen.GoO 转载请注明作者出处
MSN contact:
wantm009@hotmail.com
Keyword: Trend Micro,TrendMicro,IMSS,InterScan,Mail Gateway


  Trend Micro InterScan Messaging Security Suite (IMSS)是台湾趋势科技中小企业级的邮件防毒产品。一直以来没有好好研究过它在限制邮件大小方面关于 Per Session 和 Per Connection 的定义。趋势的帮助文档和官方KB也都没有仔细描述。
  近日朋友的 IMSS 由于在限制邮件大小上出了点问题,所以得暇稍微留意了一下。

  IMSS 在 Configuration - SMTP Routing - Message 菜单,对邮件大小有4项定义,如图:


A Limit message size (解:限制单个邮件尺寸)
B Limit data size per session (解:限制每会话数据尺寸)
C Limit number of messages per connection (解:限制每连接邮件个数)
D Limit number of recipients per message (解:限制每邮件收件人数)


  其中项A和D都比较好理解,但是项B和C中的,per session 和 per connection 到底做何解释呢?
  请看下面一个发送实例:

EHLO DOMAIN.COM //EHLO 命令
250 OK
MAIL FROM:<
USER@DOMAIN.COM> //第一个 MAIL FROM 命令
250 <
USER@DOMAIN.COM>: Sender Ok
RCPT TO:<
recipient@target-A.com> //target-A 的收件人
250 <
recipient@target-A.com>: Recipient Ok
DATA //DATA 命令
354 ESMTP: Send data now. Terminate with "."
. //以.命令结束第一次发送
250 ESMTP: Message accepted for delivery
MAIL FROM:<
USER@DOMAIN.COM> //第二个 MAIL FROM 命令
250 <
USER@DOMAIN.COM>: Sender Ok
RCPT TO:<
recipient@target-B.com> //target-B 的收件人
250 <
recipient@target-B.com>: Recipient Ok
DATA
//DATA 命令
354 ESMTP: Send data now. Terminate with "."
. //以.命令结束第一次发送
250 ESMTP: Message accepted for delivery
QUIT //退出命令


  这个例子中,MTX在第一个邮件发送完成以后并没有使用 QUIT 命令退出,就继续 MAIL FROM 命令,在原有TCP连接上直接发送第二个邮件。
  于是我们可以看到在这个TCP连接中一共发送了2个邮件,数据量大小就是2个目标邮件的总和。所以项B和C就是判断这种情况下的阀值。

2006年7月26日

在 Redhat 上安全使用 Tor

Author: Hagen.GoO 转载请注明作者出处
MSN contact:
wantm009@hotmail.com
Keyword: Tor,Proxy,GFW
Tor 是基于分布式 Onion Routers 模型的英特网匿名通讯工具。国内的网民可以用此来绕过 GFW 的独裁专制。
本文简单叙述,如何在 Redhat 9.0 上安装和配置 Tor。
1 所需要软件:
2 安装 Libevent 1.1
# tar -zxvf libevent-1.1a.tar.gz //* 解压下载来得的tar包
# cd libevent-1.1a //* 进入源码目录
# ./configure --prefix=/usr/local/libevent //* 执行配置脚本,我们把 libevent 指定安装到 /usr/local/libevent
# make && make install //* 编译安装
3 为 Tor 和 Privoxy 添加 nobody 的系统帐户,如果系统已经存在此用户,可以跳过这步
# useradd -d /dev/null -s /sbin/nologin nobody
4 安装 Tor 0.1.1.22
4.1 安装 Tor
# tar -zxvf tor-0.1.1.22.tar.gz //* 解压下载来得的tar包
# cd tor-0.1.1.22 //* 进入源码目录
# ./configure --prefix=/usr/local/tor --with-libevent-dir=/usr/local/libevent //* 执行配置脚本,我们把 tor 指定安装到 /usr/local/tor,并且告知刚才libevent 的安装位置
# make && make install //* 编译安装
4.2 配置 Tor
# mkdir /var/tor //* 为 Tor 新建数据存储目录
# chown nobody:nobody /var/tor //* 修改所属用户和组
# chmod 700 /var/tor //* 修改用户权限
# cp /usr/local/tor/etc/tor/torrc.sample /usr/local/tor/etc/tor/torrc //* 从例本中复制一个 Tor 的配置文件 torrc
# vi /usr/local/tor/etc/tor/torrc //* 编辑 torrc
修改内容如下:
RunAsDaemon 1 //* 以守护方式运行 Tor
User nobody //* 运行 Tor 的用户帐号
Group nobody //* 用户组
DataDirectory /var/tor //* 重定向 Tor 的数据文件到刚才新建的目录
Log notice file /var/tor/notices.log //* 重定向 Tor 的 log 文件
4.3 运行 Tor
# /usr/local/tor/bin/tor //* 手动开启 Tor 的命令
# /usr/local/tor/bin/tor-resolve google.com 127.0.0.1:9050 //* 这是校验 Tor 时候成功运行的命令
4.4 配置 Tor 自动运行
# echo "/usr/local/tor/bin/tor" >> /etc/rc.d/rc.local //* 追加到 rc.local 即可实现。
5 安装 Privoxy 3.0.3-2
5.1 安装 Privoxy
# tar -zxvf privoxy-3.0.3-2-stable.src.tar.gz //* 解压下载来得的tar包
# cd privoxy-3.0.3-stable //* 进入源码目录
# autoheader && autoconf && ./configure --prefix=/usr/local/privoxy --with-user=nobody --with-group=nobody //* 执行配置脚本,我们把 privoxy 指定安装到 /usr/local/privoxy,并指定运行 Privoxy 服务的用户帐号。
# make && make install //* 编译安装
5.2 调整 Privoxy 的配置文件
# vi /usr/local/privoxy/etc/config //* 编辑 Privoxy config
追加如下一条内容:
forward-socks4a / 127.0.0.1:9050 . //* 指定 Privoxy 得到的 HTTP 请求转发给 Tor
5.3 配置 Privoxy 为自启动服务
# cp privoxy.init /etc/rc.d/init.d/privoxy //* 把源码目录中的 privoxy.init 复制到 init.d/privoxy
# chmod 755 /etc/rc.d/init.d/privoxy //* 修改 privoxy 的文件权限
# vi /etc/rc.d/init.d/privoxy //* 编辑 privoxy
做如下修改:
PRIVOXY_BIN="/usr/local/privoxy/sbin/$PRIVOXY_PRG" //* 191行,指定可执行文件位置
PRIVOXY_CONF="/usr/local/privoxy/etc/config" //* 192行,指定配置文件位置
PRIVOXY_USER="nobody" //* 193行,指定用户
# chkconfig --add privoxy //* 使用 chkconfig 命令,把 privoxy 加为服务
# chkconfig --list privoxy //* 如果服务添加成功,可以列出 privoxy 服务在各运行层的开关状态
5.4 运行 Privoxy
# service privoxy start //* privoxy 服务默认在 Level3 Level5 都能自运行,手动启动可以使用这条命令
6 在浏览器中使用 Tor
Linux 常用的浏览器 Opera Firefox Mozilla 等,需要配置代理服务器为 127.0.0.1:8118 即可轻松使用。简单路由过程是:
  • 浏览器得到HTTP请求,转发到代理服务器,即 Privoxy 开启的127.0.0.1:8118 ,
  • Privoxy 把请求再转发给 Tor 的 127.0.0.1:9050 SOCKS端口。
  • Tor 得到请求后,继而通过已知的匿名节点加密后转发出去。

安装配置 vsftpd PAM+SSL

Author: Hagen.GoO 转载请注明作者出处
MSN contact:
wantm009@hotmail.com
Keyword: vsftpd,PAM,SSL
Quote:


01 官方下载
最新 2.0.5 ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.5.tar.gz

02 解压
# tar -zxvf vsftpd-2.0.5.tar.gz

03 进入 vsftpd-2.0.5 目录
# cd vsftpd-2.0.5

04 编辑 builddefs.h (可选)
把 #undef VSF_BUILD_TCPWRAPPERS 修改成 #define VSF_BUILD_TCPWRAPPERS
把 #undef VSF_BUILD_SSL 修改成 #define VSF_BUILD_SSL

05 编译安装
# make
# make install
# cp vsftpd.conf /etc

06 给 vsftpd 添加运行帐号 nobody,也可以使用配置文件中 nopriv_user 项指定其他用户名
# mkdir /usr/share/empty/
# useradd -s /sbin/nologin nobody

07 添加处理虚拟用户或匿名用户的系统帐号 ftp
# mkdir /var/ftp
# useradd -d /var/ftp -s /sbin/nologin ftp
此帐号需匹配配置文件中的 ftp_username(匿名用户) 或 guest_username (虚拟用户)。

08 编辑 PAM 配置文件
# echo "auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login" >> /etc/pam.d/ftp
# echo "account required /lib/security/pam_userdb.so db=/etc/vsftpd_login" >> /etc/pam.d/ftp

09 生成 PAM 的用户数据库
先建立一个文本文件,奇数行为用户名,偶数行为用户密码。可以参看安装目录中 EXAMPLE\VIRTUAL_USERS\logins.txt。
# db_load -nT -t hash -f vsftpd_login.txt /etc/vsftpd_login.db

10 用 OpenSSL 生成自签名证书。
# openssl req -x509 -newkey rsa:1024 -keyout /etc/vsftpd.key -out /etc/vsftpd.pem -nodes (注意加上 -nodes 参数。)

11 编辑 vsftpd.conf 文件
# vi vsftpd.conf
修改成:
listen=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
write_enable=YES
chroot_local_user=YES
ssl_enable=YES
rsa_cert_file=/etc/vsftpd.pem
rsa_private_key_file= /etc/vsftpd.key
virtual_use_local_privs=YES

或
listen=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
write_enable=YES
chroot_local_user=YES
ssl_enable=YES
rsa_cert_file=/etc/vsftpd.pem
rsa_private_key_file= /etc/vsftpd.key
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES

12 自启动 vsftpd 服务
方法1: 编辑 rc.local 文件
echo "/usr/local/sbin/vsftpd" >> /etc/rc.d/rc.local
方法2: 使用 xinetd.d ,把安装目录中 xinetd.c/vsftpd 文件复制到系统 xinetd.d
cp /xinetd.d/vsftpd /etc/xinetd.d/
使用此方法,需注解掉 vsftpd.conf 中的 listen=YES

vsftpd 在 Redhat 9.0 上无法找到 krb5.h

在 Redhat 9.0 上编译 vsftpd with SSL 时报错,提示无法找到 krb5.h,
下面是CU上一位大侠的解决方法:
ln -s /usr/kerberos/include/com_err.h /usr/include/com_err.h
ln -s /usr/kerberos/include/profile.h /usr/include/profile.h
ln -s /usr/kerberos/include/krb5.h /usr/include/krb5.h

OpenSSH 与 SecureCRT 公钥认证登陆

Author: Hagen.GoO 转载请联系作者
MSN_contact:
wantm009@hotmail.com
Keyword: OpenSSH,Public Key
Quote:

1 在Windows客户机的SecureCRT程序的Tools菜单中,调出"Create Publib Key"向导,依提示产生一密钥对。默认产生的密钥对会存放在 "C:\Documents and Settings\%USERNAME%\Application Data\VanDyke\",其中 Identity 就是私钥文件,Identity.pub 这是公钥文件。

2 在Linux服务器上编辑 sshd.config 文件
#vi /usr/local/etc/sshd_config
做如下修改:
PasswordAuthentication no (关闭口令认证)
PubkeyAuthentication yes (开启公钥认证)
AuthorizedKeysFile .ssh/authorized_keys (认证公钥文件位置)

3 依旧在Linux服务器上
#mkdir /root/.ssh (新建/root目录下的.ssh文件夹)
#chmod 700 /root/.ssh (修改.ssh文件夹的用户权限)


4 上传Windows客户机SecureCRT生成的公钥 Identity.pub,
OpenSSH公钥没有使用采用 IETF SECSH 标准,所以和SecureCRT的公钥格式不兼容,需要使用OpenSSH自带的 ssh-keygen 命令转换以后才能被OpenSSH识别。authorized_keys 可以保存多个公钥,所以公钥格式转换导入的时候,应该使用追加符 >> ,而不是 >。
#ssh-keygen -i -f Identity.pub >> /root/.ssh/authorized_keys

常见数字证书格式和文件扩展名

Author: Hagen.GoO 转载请联系作者
MSN_contact:
wantm009@hotmail.com
Keyword: PKCS,X.509,OpenSSL
Quote:

PKCS 全称是 Public-Key Cryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准,PKCS 目前共发布过 15 个标准。常用的有:
PKCS#7 Cryptographic Message Syntax Standard
PKCS#10 Certification Request Standard
PKCS#12 Personal Information Exchange Syntax Standard
X.509是常见通用的证书格式。所有的证书都符合为Public Key Infrastructure (PKI) 制定的 ITU-T X509 国际标准。
PKCS#7 常用的后缀是: .P7B .P7C .SPC
PKCS#12 常用的后缀有: .P12 .PFX
X.509 DER 编码(ASCII)的后缀是: .DER .CER .CRT
X.509 PAM 编码(Base64)的后缀是: .PEM .CER .CRT

在OpenSSL的工具集中,一般可以使用 -outform -inform 指定 DER 还是 PAM 格式。例如:
openssl x509 -in Cert.pem -inform PEM -out cert.der -outform DER
OpenSSL 中 PEM 到 PKCS#12 的转换,参考命令:
openssl pkcs12 -export -in Cert.pem -out Cert.p12 -inkey key.pem
OpenSSL 中 PKCS#12 到 PEM 的转换,可参考:
openssl pkcs12 -in Cert.p12 -out Key.pem
openssl x509 -in Key.pem -text -out Cert.pem

Redhat 9.0 上升级安装 OpenSSL

Author: Hagen.GoO 转载请联系作者
MSN_contact:
wantm009@hotmail.com
Keyword: OpenSSL,Redhat Linux
Quote:


在原先的Redhat 9.0中,已经RPM方式安装了旧版的OpenSSL,一下找不到合适的0.9.8a的RPM升级包,所以试着用源码安装升级,摘要如下:

01 从官方 WWW.OPENSSL.ORG 下载最新 0.9.8a 版的OpenSSL,文件名是 openssl-0.9.8a.tar.gz

02 查找 libcrypto.so* 和 libssl.so* 这两个链接文件的位置,一般有

/lib/libcrypto.so.4
/lib/libssl.so.4
/usr/lib/libcrypto.so
/usr/lib/libssl.so

03 卸载原 OpenSSL 的RPM安装包
$ rpm -qa grep openssl
$ rpm -e --nodeps openssl-XXXXX

04 解压
$ tar zxvf openssl-0.9.8a.tar.gz

05 进入解压目录
$ cd openssl-0.9.8a

06 配置,添加到动态链接库
$ ./config shared
注意一定有 shared 的参数,否则不会编译出 .so 的动态链接库,那样也就意味着不能被OpenSSH等应用程序正常调用~

07 安装
$ make && make install

08 更新 Run-time Linker
ld.so.cache 需要从新位置重新加载新的OpenSSL共享库: libcrypto.so.0.9.8 和 libssl.so.0.9.8

$ cd /usr/local/ssl/lib
$ ln -s libcrypto.so.0.9.8 libcrypto.so.4
$ ln -s libcrypto.so.0.9.8 libcrypto.so
$ ln -s libssl.so.0.9.8 libssl.so.4
$ ln -s libssl.so.0.9.8 libssl.so
$ vi /etc/ld.so.conf
在文末插入一行 /usr/local/ssl/lib
$ ldconfig -v

09 测试
$ /usr/local/ssl/bin/openssl version
$ openssl version
如果可以看到正确版本,表示安装成功。

你还在用盗版杀毒软件吗?(Linux/UNIX)

Author: Hagen.GoO 转载请联系作者
MSN_contact:
wantm009@hotmail.com
Keyword: 杀毒软件,盗版软件,免费软件,Free Antivirus
Quote:



介绍几款 Linux/UNIX 平台下免费的杀毒软件:免去你升级病毒定义码的不便,免去你使用盗版的不安。


1 AVG Anti-Virus Free
官方网站:http://www.grisoft.com/
最新版本:7.1.0028
下载地址:http://free.grisoft.com/doc/5390/lng/us/tpl/v5#avg-free

2 AntiVir PersonalEdition Classic
官方网站:http://www.free-av.com/
最新版本:2.1.7-26,Engine 7.01.00.21
下载地址:http://free-av.com/personal/en/unix/antivir-workstation-pers.tar.gz

3 Clam AntiVirus
官方网站:http://www.clamav.net/
最新版本:0.88.3
下载地址:http://prdownloads.sourceforge.net/clamav/clamav-0.88.3.tar.gz?download

4 BitDefender Linux Edition
官方网站:http://www.bitdefender.com/
最新版本:7.1-3
下载地址:http://download.bitdefender.com/linux/free/bitdefender-console/en/

5 F-Prot Antivirus for Linux Workstations
官方网站:http://www.f-prot.com/
最新版本:4.6.6
下载地址:http://www.f-prot.com/download/home_user/download_fplinux.html

6 Panda Antivirus for Linux (但,官方网站好像没有提供免费的病毒定义码下载)
官方网站:http://www.pandasoftware.com/
最新版本:7.01.00-1
下载地址:http://www.pandasoftware.com/download/linux/descarga.asp

7 avast! Linux Home Edition
官方网站:http://www.avast.com/
最新版本:1.0.6
下载地址:http://www.avast.com/eng/download-avast-for-linux-edition.html

ISC DHCP Server 3.0.4 Tips

Author: Hagen.GoO 转载请联系作者
MSN_contact:
wantm009@hotmail.com
Keyword: ISC DHCP SERVER,dhcpd.conf
Quote:

01、ISC DHCP Server 的配置文件中可分配IP是如何声明的?
答:
对拥有多个IP网段的DHCP服务器,可以用 shared-network 声明;

shared-network shared-network-name1 {
subnet 10.17.224.0 netmask 255.255.255.0 {
}
subnet 10.0.29.0 netmask 255.255.255.0 {
}
pool {
allow members of "CLASSNAME1";
range 10.17.224.10 10.17.224.250;
}
pool {
deny members of "CLASSNAME2";
range 10.0.29.10 10.0.29.230;
}
}

对于只有单个网段,又不需要特别管理的 DHCP Server,可以使用 subnet + range 声明;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.20 192.168.0.99;
range 192.168.0.200 192.168.0.250;
}

对于只有单个网段,但需要进行IP分配管理的 DHCP Server,可以使用 subnet + pool + range 声明;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.20 192.168.0.99;
range 192.168.0.200 192.168.0.250;
pool {
allow members of "CLASSNAME3";
range 192.168.0.100 192.168.0.149;
}
}

对单个MAC和IP绑定的单个主机,可以使用 Host 声明;
host YOUR-HOSTNAME {
hardware ethernet 00:22:D6:6B:EA:11;
fixed-address 192.168.0.11;
}


02、上述几种可用IP的声明,哪种优先级最高?
答:
优先级最高的是 Host 声明;
接下来是 带有 allow deny 关键字的 Pool (subnet + pool + range)声明,
如果 allow deny 许可冲突,DHCP Server 只执行 allow 操作;
再是不带allow deny关键字的普通 Pool;
最次是 Subnet 或 Shared-network声明。

03、group 标签有什么用途?
答:
group可以包含Shared-network,Subnet,Pools,Hosts的声明,可以分组管理,简化配置文件。比如:
host host-name2 {
hardware ethernet 01:02:DD:7B:E3:53;
option routers 192.168.0.1;
fixed-address 192.168.0.12;
}
host host-name3 {
hardware ethernet 00:12:DC:0B:E3:A3;
option routers 192.168.0.1;
fixed-address 192.168.0.13;
}

可以简化为

group {
option routers 192.168.0.253;
host host-name2 {
hardware ethernet 01:02:DD:7B:E3:53;
fixed-address 192.168.0.12;
}
host host-name3 {
hardware ethernet 00:12:DC:0B:E3:A3;
fixed-address 192.168.0.13;
}
}


04、什么时候需要使用 class 标签?
答:
对DHCP客户端进行分组,在IP Pools中,利用 Allow Deny 关键词进行不同地址池的分配,例如:
class "class-name1" {
match if option user-class = "用户自定义ClassID";
}
class "class-name2" {
match if option user-class = "用户自定义ClassID2";
}

pool {
allow members of "class-name1";
range 192.168.0.100 192.168.0.149;
}
pool {
allow members of "class-name2";
range 192.168.0.150 192.168.0.199;
}


05、if条件语句的使用方法?
答:
ISC DHCP Server 的配置文件,支持 if…… elsif……的条件转向语句,比如针对 UserClassID 的信息,配置不同的生存时间和域名后缀:
if option dhcp-user-class = "accounting" {
max-lease-time 36000;
option domain-name "accounting.example.org";
} elsif option dhcp-user-class = "sales" {
max-lease-time 17600;
option domain-name "sales.example.org";
}

更多DHCP选项,请参考 man dhcp-options 。

06、如何配置Windows系统的 UserClassID?
答:
使用 ipconfig /setclassid adapter-NAME [classid];(启动了Windows的DHCP Client服务以后,才能执行)
也可以修改注册表 HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\YOUR-NIC\ 下的 DhcpClassId (REG_SZ)。

2006年5月26日

安装 Zlib

Author: Hagen.GoO 转载请注明作者出处
MSN contact: wantm009@hotmail.com
Keyword: Zlib
Quote:

01 下载,官方网站 http://www.gzip.org/zlib/

02 安装路径

默认为: /usr/local (Redhat为:/usr )

Zlib库文件: /usr/local/lib

Zlib头文件: /usr/local/include

模块方式 : 动态和静态装载模块 *.so 和 *.a

03 安装静态库

$ ./configure

$ make test

$ make install

04 安装共享库

$ make clean

$ ./configure --shared

$ make test

$ make install

05 复制系统需要的头文件

$ cp zutil.h /usr/local/include

$ cp zutil.c /usr/local/include

06 查看安装结果

/usr/local/lib 应该有

libz.a

libz.so -> libz.so.1.2.1

libz.so.1 -> libz.so.1.2.1

libz.so.1.2.1

/usr/local/include 应该有

zconf.h

zlib.h

zutil.h

07 升级原有zlib或者要把zlib安装到指定目录

可以在安装前的配置时,添加 --prefix 参数,比如:

$ mkdir /usr/local/zlib

$ ./configure --prefix=/usr/local/zlib

08 更新 Run-Time Linker,使 /etc/ld.so.cache 加载新的

共享库 libz.so.1.2.1

编辑: /etc/ld.so.conf

默认安装添加:/usr/local/lib

非默认安装添加: /usr/local/zlib/lib 即 --prefix 指定的路径

执行命令 ldconfig