Ðí¶àÅóÓÑʼÖÕ¾õµÃ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