1 安裝fpm打包工具
建議首次安裝依次進行。後面很繞還容易把服務器搞崩潰,即使安裝不上也就算了,這個打包在自己機器測試最好嘛。
1.1 首次安裝
yum -y install ruby rubygems ruby-devel
gem sources-a http://mirrors.aliyun.com/rubygems/
gem sources--remove http://rubygems.org/
gem installfpm
ERROR: Could not find a valid gem 'fpm' (>= 0) inany repository
可能是ruby阿里雲源不穩定,添加ruby淘寶源
gem sources -a http://ruby.taobao.org/
Errorfetching http://ruby.taobao.org/:
bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
地址可能不正確,更換爲https
gem sources -a https://ruby.taobao.org/
gem install fpm
ERROR: Could not find a valid gem 'fpm' (>= 0) inany repository
下載出錯,找不到,可能沒有刪除ruby阿里雲源,默認找第一個添加的去了,移除
gem sources --remove
http://mirrors.aliyun.com/rubygems/
gem install fpm
Buildingnative extensions. This could take awhile...
Buildingnative extensions. This could take awhile...
ERROR: Error installing fpm:
ruby-xz requires Ruby version >=1.9.3.
ruby版本太低安裝不了最新的fpm,更新ruby或安裝舊版本fpm如1.4.0:
gem install fpm -v 1.4.0
Successfullyinstalled clamp-0.6.5
Successfullyinstalled fpm-1.4.0
2gems installed
Installingri documentation for clamp-0.6.5...
Installingri documentation for fpm-1.4.0...
InstallingRDoc documentation for clamp-0.6.5...
InstallingRDoc documentation for fpm-1.4.0...
1.2 快照回滾後安裝(運營商網絡也可能影響)
yum -y install ruby rubygems ruby-devel
gem sources -a https://ruby.taobao.org/
gem sources--remove http://rubygems.org/
gem install fpm -v 1.4.0
ERROR: Error installing fpm:
json requires Ruby version ~> 2.0.
這個問題我不知道怎麼解決,考慮升級ruby了,那麼不管繼續執行下面安裝
gem install fpm
Buildingnative extensions. This could take awhile...
Buildingnative extensions. This could take awhile...
ERROR: Error installing fpm:
ruby-xz requires Ruby version >=1.9.3.
還是報這個錯誤,索×××如何把ruby1.8.7升級到1.9.3了,但是又怕其他軟件比如會出問題,所以你要是怕就考慮安裝到一個專門的目錄吧,不要覆蓋安裝。
wget https://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.gz
wget http://pyyaml.org/download/libyaml/yaml-0.1.7.tar.gz
tar xf yaml-0.1.7.tar.gz
cd yaml-0.1.7
./configure
make
make install
cd ..
tar xf ruby-1.9.3-p125.tar.gz
cd ruby-1.9.3-p125
./configure
make
make install
ruby --version
ruby1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
發現還是1.8.7,怎麼回事?於是查看安裝成功的結尾處
installingcommand scripts: /usr/local/bin
installinglibrary scripts: /usr/local/lib/ruby/1.9.1
installingcommon headers: /usr/local/include/ruby-1.9.1
installingmanpages: /usr/local/share/man/man1
但是命令目錄還是/usr/local/bin啊,和以前的一樣,那麼我執行ruby –version爲什麼是1.8.7,奇怪,難道說是沒有覆蓋,我去,我要把這個命令移走,重新編譯
which ruby
/usr/local/bin/ruby
mv /usr/local/bin/ruby /tmp/
which ruby
/usr/bin/ruby
/usr/bin/ruby –version
ruby1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
爲什麼還有一個,我去,陰魂不散啊,移走
mv /usr/bin/ruby /tmp/ruby2
重新編譯
make
make install
查看路徑:
which ruby
查看版本
/usr/local/bin/ruby –version
ruby1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux]
哎,終於好了,老天有眼
那繼續下一步,安裝fpm,前面已經添加好了ruby淘寶源
gem install fpm
-bash:/usr/bin/gem: /usr/bin/ruby: bad interpreter: No such file or directory
這又是什麼情況,說找不到ruby,我暈哦,難道gem命令內有寫ruby的路徑?
which gem
/usr/local/bin/gem
什麼情況,gem也不在/usr/bin/gem啊,可能這是後面安裝ruby就默認安裝了的,那我直接來個全路徑了
/usr/local/bin/gem install fpm
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NameError)
uninitialized constantGem::Commands::InstallCommand
我要崩潰了,難道我生下來就是看紅屏的嗎?說無法加載zlib
rpm -qa zlib
zlib-1.2.3-29.el6.x86_64
zlib也是有的啊,算了,進入ruby源碼目錄,安裝源碼自帶的zlib
cd ext/zlib/
ruby extconf.rb
-bash:/usr/bin/ruby: No such file or directory
啥子情況哦,我又沒做啥子,ruby也找不到了,忘了用全路徑,可能PATH變量寫在前面的是以前那個,後面那個不去使用,默認使用前面那個,但是又被移除了,所以找不到
/usr/local/bin/ruby extconf.rb
make
make: Nothing to be done for `all'.
echo $?
0
貌似不是報錯
make install
make: Nothing to be done for `install'.
echo $?
0
貌似不是報錯
再來安裝,我就不信
/usr/local/bin/gem install fpm
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NameError)
uninitialized constantGem::Commands::InstallCommand
還是不行,難道沒有make成功
cd ../../
make clean
cd ext/zlib/
/usr/local/bin/ruby extconf.rb
還是不行,哎,老子用yum死馬活馬醫
yum install zlib-devel –y
算了還是不行,老子不搞了,煞筆玩意,這條路不可行,整到天荒地老人都嚥了。
下面我又恢復快照,按首次安裝進行了一次,一樣很順利
結論:還是按首次安裝一步步進行吧,可能中間某個錯誤的步驟以及幫你安裝了某些組建,跳過了所謂的
ERROR: Error installing fpm:
json requires Ruby version ~> 2.0.
不管是錯誤步驟還是正確步驟,都依次執行,按我說的做就可以了。繞了你們一大圈。開頭有註明^V^,別怪我,自己沒看清楚。