ºìÁªLinuxÃÅ»§
Linux°ïÖú

ʹÓÃFPMÇáËÉÖÆ×÷RPM°ü

·¢²¼Ê±¼ä:2014-06-12 15:57:36À´Ô´:ºìÁª×÷Õß:velcbo
Ðí¶àÅóÓÑʼÖÕ¾õµÃRPMÄÑ×ö£¬Ö÷ÒªÊÇÒòΪSPEC¹æÔò±È½Ï¶à£¬ÐèÒª»¨¾«Á¦È¥Á˽âºÍÊìϤ¡£Ö®Ç°ÊÔÓÃÒ»¸ö½ÐcheckinstallµÄ¹¤¾ß£¬¿ÉÒÔ×Ô¶¯´òRPM°ü¡£ºÜ¾ÃûÓÐά»¤ÁË£¬ÔÚCentOS6ÉϱàÒëÓÐÎÊÌâ¡£ËäȻҲÓÐÍøÓѸø´òÁËPatch£¬×îÖÕÄÜÓÃÆðÀ´£¬¿ÉϧʹÓùý³ÌÖл¹ÊÇ»áÓöµ½Öî¶à´íÎó¡£

Èç½ñÇÉÓöFPM£¬Ò»ÐÐÃüÁî¾Í¸ã¶¨RPM°ü£¡

Ò»¡¢ÎÒÃÇÀ´ÏȰ²×°FPM£º

# FPMÊÇRubyÄ£¿é
yum -y install ruby rubygems ruby-devel
# Ìí¼ÓÌÔ±¦µÄRuby²Ö¿â
gem sources -a http://ruby.taobao.org/
# ÒÆ³ýÔ­ÉúµÄRuby²Ö¿â
gem sources --remove http://rubygems.org/
# °²×°fpm
gem install fpm

¶þ¡¢¹ÙÍø½éÉÜÁËÓÃFPM´òdeb°ü£¬ÎÒÀ´·­Òë³Érpm°æ£º

# È¥nodejs¹ÙÍøÏÂÔØ×îÐÂÔ´Âë°ü
wget http://nodejs.org/dist/v0.10.12/node-v0.10.12.tar.gz
# ½âѹ
tar zxvf node-v0.10.12.tar.gz -C /dev/shm/
# ½øÈëÔ´ÂëĿ¼
cd /dev/shm/node-v0.10.12/
# Ö¸¶¨ÅäÖòÎÊý
./configure --prefix=/usr --dest-cpu=x64 --dest-os=linux
# ʹÓöàºË±àÒë
make -j24
mkdir /dev/shm/node-root
# Ö¸¶¨°²×°Â·¾¶
make -j24 install DESTDIR=/dev/shm/node-root
# Éú³ÉRPM
fpm -f -s dir -t rpm -n nodejs --epoch 0-v 0.10.12--iteration 1.el6-C /dev/shm/node-root -p ~/rpmbuild/RPMS/x86_64/-d 'openssl >= 0.9.8'-d 'libstdc++ >= 4.4.3'--verbose --category 'Development/Languages'--description 'Node.js real-time applications'--url 'nodejs.org'--license 'BSD'-m 'higkoo'--no-rpm-sign --workdir /dev/shm usr/bin usr/lib usr/share
# ²é¿´RPM°üÐÅÏ¢
rpm -qpi ~/rpmbuild/RPMS/x86_64/nodejs-0.10.12-1.el6.x86_64.rpm

Èý¡¢²é¿´°²×°°üÐÅÏ¢£º

С¼¼ÇÉ£º'-e' ²ÎÊýÖ§³Ö´ò°ü֮ǰÊÖ¶¯ÐÞ¸ÄFPM×Ô¶¯Éú³ÉµÄSPECÎļþ£¬È»ºóÔÙ´ò°ü¡£²»¹ý×¢ÒâCentOS5ºÍCentOS6Ö®¼äµÄrpm°ü²»ÄÜ»ìÓã¬ÒòΪËûÃÇÖ®¼äµÄglibc°æ±¾²»Í¬£¬¶¯Ì¬¿âÁ´½Ó²»ÉÏ¡£

OK£¬Ã»Íæ¹ý¾Í¸Ï½ô¶¯ÊÖ°É£¡

¸ÅÊö

×Ô´ÓʹÓÃ×Ô½¨µÄYUM²Ö¿âºó£¬°²×°¹¤¾ß±äµÄ¼ò±ã¿ìËÙ£¬¶øÇÒ·½±ãͳһ¹ÜÀíÈí¼þµÄ°æ±¾¡£?àÂһϣ¬×Ô½¨µÄYUM²Ö¿â»¹¿ÉÒÔ½áºÏcobbler,ʵÏÖ¶¨ÖÆ»¯µÄϵͳ°²×°£¨¹ØÓÚϵͳ°²×°£¬×î½ü×öÁËÒ»¸ö×Ô¶¯»¯°²×°ÏµÍ³µÄƽ̨£¬Ê¹ÓÃcobblerÌṩµÄ½Ó¿Ú£¬Õâ¸öÒÔºó·¢²©²¹³äһϣ©¡£×ܶøÑÔÖ®£¬ÓÉÓÚ×Ô½¨YUM²Ö¿âµÄÍÆÐУ¬±ãÓдóÁ¿RPM°üµÄÖÆ×÷µÄÈÎÎñ£¬¾­Í¬ÊÂÍÆ¼ö£¬³¢ÊÔÁËÒ»ÏÂFRMÖÆ×÷RPM°ü£¬±ÈÆð±àдSPECÎļþ£¬È·Êµ·½±ã¶àÁË¡£

°²×°FPM

yum -y install ruby ruby-devel rubygems # FPMÊÇRubyÄ£¿é

gem sources -a http://ruby.taobao.org/ # Ìí¼ÓÌÔ±¦µÄRuby²Ö¿â

gem sources --remove http://rubygems.org/ # ÒÆ³ýÔ­ÉúµÄRuby²Ö¿â

# °²×°fpm

gem install fpm

¹Ù·½µÄʾÀý´ò°ünodejs

wget http://nodejs.org/dist/v0.10.12/node-v0.10.12.tar.gz #ÏÂÔØnodejsÔ´Âë°ü

tar zxvf node-v0.10.12.tar.gz -C /dev/shm/ # ½âѹ

cd /dev/shm/node-v0.10.12/ # ½øÈëÔ´ÂëĿ¼

./configure --prefix=/usr --dest-cpu=x64 --dest-os=linux # Ö¸¶¨ÅäÖòÎÊý

make

mkdir /dev/shm/node-root

make install DESTDIR=/dev/shm/node-root # Ö¸¶¨°²×°Â·¾¶

fpm -f -s dir -t rpm -n nodejs --epoch 0 -v 0.10.12 --iteration 1.el6 -C /dev/shm/node-root -p /root/ -d 'openssl >= 0.9.8' -d 'libstdc++ >= 4.4.3' --verbose --category 'Development/Languages' --description 'Node.js real-time applications' --url 'nodejs.org' --license 'BSD' -m 'lxcong' --no-rpm-sign usr/bin usr/lib usr/share # Éú³ÉRPM ×¢Òâusr/bin usr/lib usr/share ÕâЩ¾ÍÊÇÐèÒª´ò°üµÄÊý¾ÝĿ¼

rpm -qpi /root/nodejs-0.10.12-1.el6.x86_64.rpm # ²é¿´RPM°üÐÅÏ¢

²ÎÊýº¬Òå

-s Ö¸¶¨INPUTµÄÊý¾ÝÀàÐÍ

-t Ö¸¶¨ÐèÒªÖÆ×÷³Éʲô°ü,¿ÉÑ¡ÏîÓÐ(deb, rpm, solaris, etc)

-n °üÃû

--iteration Ò²¾ÍÊÇrpm°üÀïÃæµÄrelease

-C ¾ÍÊÇ´ò°üµÄÏà¶Ô·¾¶£¬ÀàËÆÓÚbuildroot¡£Æ©Èç-C /dev/shm/node-root/ ¶ø´ò°ü»úÆ÷µÄÊý¾Ý°ü·¾¶ÊÇ/dev/shm/node-root/usr/bin/node Äǰ²×°Õâ¸örpm°üºó£¬ÔÚ±¾µØµÄÊý¾Ý¾ÍÊÇ/usr/bin/node

×÷Õߣºhigkoo
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ