linux删除zlib无法远程,linux下Zlib的安裝與使用

1. zlib簡介

zlib 適用於數據壓縮的函式庫,由Jean-loup Gailly (負責compression)和 Mark Adler (負責decompression)開發。

zlib被設計成一個免費的、通用的、法律上不受阻礙(即沒有被任何專利覆蓋) 的無損數據壓縮庫。zlib幾乎適用於任何計算器硬件和操作系統。

zlib本身的數據格式可以進行跨平台的移植。 與在Unix上適用的LZW壓縮方法 以及 GIF 圖像壓縮不同, zlib中適用的壓縮方法從不對數據進行拓展。(LZW在極端情況下會導致文件大小變為原來的兩倍、甚至三倍)。zlib的內存占用也是獨立於輸入數據的,並且在必要的情況下可以適當減少部分內存占用。

2. zlib的安裝

查看:yum list |grep zlib* 看到的是全部都安裝好的;

fc9ebd650b9724bd1b597992144b2db3.jpe

版本為1.2.3,現在要升級為1.2.11

卸載

cc9b271eeacb2b9e036dbeadc9b50ca2.jpe

[root@biluos1 zlib-1.2.11]# rpm –nodeps -e zlib-1.2.3-29.el6.x86_64

6008e46f8f6fcfccda49e87f6fc664c7.jpe

下面是安裝

下載http://www.zlib.net/,我下載的是zlib-1.2.11.tar.gz

[root@biluos1 zlib-1.2.11]# mkdir -p /opt/moudles/Zlib

[root@biluos1 zlib-1.2.11]# tar -zxvf zlib-1.2.11.tar.gz -C /opt/moudles/Zlib/

[root@biluos1 zlib-1.2.11]# cd /opt/moudles/Zlib/zlib-1.2.11/

配置

[root@biluos1 zlib-1.2.11]# ./configure

Checking for gcc...

Checking for shared library support...

Building shared library libz.so.1.2.11 with gcc.

Checking for size_t... Yes.

Checking for off64_t... Yes.

Checking for fseeko... Yes.

Checking for strerror... Yes.

Checking for unistd.h... Yes.

Checking for stdarg.h... Yes.

Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().

Checking for vsnprintf() in stdio.h... Yes.

Checking for return value of vsnprintf()... Yes.

Checking for attribute(visibility) support... Yes.

make

[root@biluos1 zlib-1.2.11]# make

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -c -o example.o test/example.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o adler32.o adler32.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o crc32.o crc32.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o deflate.o deflate.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o infback.o infback.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inffast.o inffast.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inflate.o inflate.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inftrees.o inftrees.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o trees.o trees.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o zutil.o zutil.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o compress.o compress.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o uncompr.o uncompr.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzclose.o gzclose.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzlib.o gzlib.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzread.o gzread.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzwrite.o gzwrite.c

ar rc libz.a adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o example example.o -L. libz.a

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -c -o minigzip.o test/minigzip.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzip minigzip.o -L. libz.a

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/adler32.o adler32.c

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/crc32.o crc32.c

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/deflate.o deflate.c

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/infback.o infback.c

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inffast.o inffast.c

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inflate.o inflate.c

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inftrees.o inftrees.c

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/trees.o trees.c

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/zutil.o zutil.c

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/compress.o compress.c

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/uncompr.o uncompr.c

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzclose.o gzclose.c

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzlib.o gzlib.c

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzread.o gzread.c

gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzwrite.o gzwrite.c

gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o libz.so.1.2.11 adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo -lc

rm -f libz.so libz.so.1

ln -s libz.so.1.2.11 libz.so

ln -s libz.so.1.2.11 libz.so.1

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o examplesh example.o -L. libz.so.1.2.11

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzipsh minigzip.o -L. libz.so.1.2.11

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS=64 -c -o example64.o test/example.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o example64 example64.o -L. libz.a

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS=64 -c -o minigzip64.o test/minigzip.c

gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzip64 minigzip64.o -L. libz.a

[root@biluos1 zlib-1.2.11]#

檢查,要全部為yes

[root@biluos1 zlib-1.2.11]# make check

hello world

zlib version 1.2.11 = 0x12b0, compile flags = 0xa9

uncompress(): hello, hello!

gzread(): hello, hello!

gzgets() after gzseek: hello!

inflate(): hello, hello!

large_inflate(): OK

after inflateSync(): hello, hello!

inflate with dictionary: hello, hello!

*** zlib test OK ***

hello world

zlib version 1.2.11 = 0x12b0, compile flags = 0xa9

uncompress(): hello, hello!

gzread(): hello, hello!

gzgets() after gzseek: hello!

inflate(): hello, hello!

large_inflate(): OK

after inflateSync(): hello, hello!

inflate with dictionary: hello, hello!

*** zlib shared test OK ***

hello world

zlib version 1.2.11 = 0x12b0, compile flags = 0xa9

uncompress(): hello, hello!

gzread(): hello, hello!

gzgets() after gzseek: hello!

inflate(): hello, hello!

large_inflate(): OK

after inflateSync(): hello, hello!

inflate with dictionary: hello, hello!

*** zlib 64-bit test OK ***

[root@biluos1 zlib-1.2.11]#

安裝

[root@biluos1 zlib-1.2.11]# make install

rm -f /usr/local/lib/libz.a

cp libz.a /usr/local/lib

chmod 644 /usr/local/lib/libz.a

cp libz.so.1.2.11 /usr/local/lib

chmod 755 /usr/local/lib/libz.so.1.2.11

rm -f /usr/local/share/man/man3/zlib.3

cp zlib.3 /usr/local/share/man/man3

chmod 644 /usr/local/share/man/man3/zlib.3

rm -f /usr/local/lib/pkgconfig/zlib.pc

cp zlib.pc /usr/local/lib/pkgconfig

chmod 644 /usr/local/lib/pkgconfig/zlib.pc

rm -f /usr/local/include/zlib.h /usr/local/include/zconf.h

cp zlib.h zconf.h /usr/local/include

chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h

[root@biluos1 zlib-1.2.11]#

在make install這一步,由於要把zlib安裝到/usr/local/lib路徑下,所以可能需要root 權限。

安裝成功后,可以在/usr/local/lib下找到 libz.a。

libz.a是一個靜態庫,為了使用zlib的接口,我們必須在連接我們的程序時,libz.a鏈接進來。

只需在 鏈接命令后加-lz /usr/llocal/lib/libz.a即可。

[root@biluos1 zlib-1.2.11]# ll /usr/local/lib

total 240

-rw-r--r-- 1 root root 135154 Mar 13 05:07 libz.a

lrwxrwxrwx 1 root root 14 Mar 13 05:07 libz.so -> libz.so.1.2.11

lrwxrwxrwx 1 root root 14 Mar 13 05:07 libz.so.1 -> libz.so.1.2.11

-rwxr-xr-x 1 root root 106048 Mar 13 05:07 libz.so.1.2.11

drwxr-xr-x 2 root root 4096 Mar 13 05:07 pkgconfig

[root@biluos1 zlib-1.2.11]#

查看

4c99c841736f6cfbcc0423f5161300fa.jpe

這里為什么還是1.2.3呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值