19.2.1. Ruční kompilace

Ruční vytvoření upravené verze ruby. Zkouším vše provést sám ručně, abych měl představu co se děje a byl schopen vytvořit upravené ruby i na jiné platformě či za změněných podmínek.

19.2.1.1. zlib

V původním crate se stahovala a kompilovala verze 1.2.3. Ta již na původním webu není. Není tam dokonce ani verze 1.2.4 se kterou jsem před pár týdny experimentoval. Jediná dostupná je v tuto chvílí (2010-05-10) verze 1.2.5.

$ mkdir download
$ cd download
$ wget http://zlib.net/zlib-1.2.5.tar.bz2
$ cd ..
$ mkdir src
$ cd src
$ tar xjvf ../download/zlib-1.2.5.tar.bz2
$ cd zlib-1.2.5
$ ./configure --64 --prefix=/usr
$ make install prefix=../../root/usr
$ make distclean
$ cd ../..

19.2.1.2. openssl

U OpenSSL jsem rovněž stáhl nejnovější verzi.

$ cd download
$ wget http://openssl.org/source/openssl-1.0.0.tar.gz
$ cd ../src
$ tar xzvf ../download/openssl-1.0.0.tar.gz
$ cd openssl-1.0.0
$ ./config --prefix=/usr zlib no-threads no-shared -fPIC
$ make depend
$ make
$ make install_sw INSTALL_PREFIX=$(pwd)/../../root
$ make clean
$ cd ../..

19.2.1.3. ruby 1.9

Když už jsem tak v těch nejnovějších verzích, ruby taky zkouším tu nejnovější z řady 1.9.

$ cd download
$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p378.tar.bz2
$ cd ../src
$ tar xjvf ../download/ruby-1.9.1-p378.tar.bz2
$ cd ruby-1.9.1-p378
$ cp ../../root/usr/lib*/{libz,libcrypto,libssl}.a .
$ export CPPFLAGS="-I../../usr/include"
$ export LDFLAGS="-L../../usr/lib -L../../usr/lib64"
$ ./configure --disable-shared --prefix=/usr --with-static-linked-ext --without-openssl --without-zlib
$ make
$ make install DESTDIR=$(pwd)/../../root/usr/bin/ld: ../../../libcrypto.a(md5_dgst.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
../../../libcrypto.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .