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.
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 ../..
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 ../..
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