於 Ruby 分類下的文章
後記
其實這些問題的處理方式都是按照錯誤時產生的參考執行的這裡僅稍微紀錄並提供大家參考若有任何錯誤歡迎指教
這篇紀錄是因為在決定好好從頭玩一次RoR之前機器已經照著網路的散落的教學文章亂裝機器導致環境有點混亂所以把相關移除的紀錄和照著XDite大步驟安裝時遇到的問題紀錄一下 另外在安裝ImageMagick時的錯誤請參考 另一篇
移除rvm
1. rvm implode
2. gem uninstall rvm
3. rm -Rf /etc/rvmrc ~/.rvmrc
移除pow
1 <code>$> curl get.pow.cx/uninstall.sh | sh </code>
執行mysql_install_db 馬上先Error
FATAL ERROR: Could not find ./bin/my_print_defaults
解決辦法如下
12345 mysql_install_db --verbose --user=`whoami` \--basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql \--tmpdir=/tmp註:user的地方請帶入自己的使用者帳號
安裝 gem install mysql 時Error
curl: (7) couldn’t connect to host
原因:pidof 相依套件網址連不到,這裡 提供我剛好有下載的壓縮擋
$> brew edit pidof #pidof 可改打入無法連結該網址的套件名稱
出現如下
class Pidof < Formula
url ‘http://www.nightproductions.net/downloads/pidof_source.tar.gz
homepage ‘http://www.nightproductions.net/cli.htm’
md5 ’663763ee1feb0596fa3731aafa7e1880′
version ’0.1.4′
def install
system “make all”
man1.install gzip(“pidof.1″)
bin.install “pidof”
end
end
把url 換成 下載下來的檔案路徑 ex : ‘file:///~/Library/Caches/Homebrew/pidof_source.tar.gz’
在執行一次安裝即可
brew 失敗時請善用 brew doctor 和brew missing 會告訴你該怎麼處理
附上查詢Mysql版本指令 mysql -V
繼續Error
Enter current password for root (enter for none):
/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation: line 85: .my.cnf.4387: Permission denied
/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation: line 86: .my.cnf.4387: Permission denied
/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation: line 87: .my.cnf.4387: Permission denied
/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation: line 89: .my.cnf.4387: Permission denied
/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation: line 58: .mysql.4387: Permission denied
/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation: line 60: .mysql.4387: No such file or directory
處理:一般權限問題 就斟酌把/usr/local/Cellar/mysql/5.5.10/bin/ 目錄權限開一下
後續安裝總算都被炸完了LOL
問題 : 使用 Homebrew 安裝ImageMagick 失敗
錯誤訊息 : Error: Failed executing: make install
系統提示:
Also try:
brew doctor
to check your setup for common problems.
brew missing
to check installed packages for missing deps.
原因:安裝過其他的程式有 /usr/bin/pkg-config , 可能是python等等 在這裡我被炸的原因是因為安裝了 Mono Framework (Orz)
解決辦法:
1. 依照提示使用 brew doctor 指令
/usr/bin is in your PATH before Homebrew's bin. This means that system-
provided programs will be used before Homebrew-provided ones. This is an
issue if you install, for instance, Python.
2. 系統提供的解決方案
A . 考慮 將paths 中的/usr/local/bin 置於 /usr/bin 之前 以Mac來說 路徑在/etc/paths 記得sudo 修改順序。由於本人並非深厚Unix like 系統使用者,所以不清楚這樣修改會衍伸什麼問題,不過經過測試,的確可以解決問題。
B. 處理系統提示其他 pkg-config 以遭遇到的問題來說可以選擇移除 Mono Framework
將 /Library/Frameworks/Mono.framework 整個砍掉即可,在/usr/bin/pkg-config的連結會一並被移除。
3. 系統提供的其他解決方案
To resolve this issue, re-brew pkg-config with:
brew rm pkg-config && brew install pkg-config
不過因為該檔案權限被保護之類的關係,實際測試結果無法解決問題。
由於覺得目前的解決辦法實在不是最佳的答案,如果有相關更好的解決辦法歡迎分享指教。
環境
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.0]
mysql2 (0.2.7)
Rails 3.0.7
問題
啥都還沒做光把資料庫預設為mysql 指令rails new webstie -d mysql
開完controller 馬上出現下面
TypeError
can't convert Fixnum into String
原因:因為你的Mysql 密碼是數字! (驚)
解決辦法
1. 修改mysql 密碼 (治標)
mysqladmin -h localhost -u root password
2. 更改Gem程式碼(治本)
Git上討論的解法
https://github.com/krekoten/mysql2/commit/68795e295e64faee357a56947b5cf09a2de397c1
中文步驟
編輯
ssl_set(*opts.values_at(:sslkey, :sslcert, :sslca, :sslcapath, :sslciper))
user = opts[:username]
- pass = opts[:password]
+ pass = opts[:password] ? opts[:password].to_s : nil
host = opts[:host] || 'localhost'
port = opts[:port] || 3306
spec/mysql2/client_spec.rb 備註:+號不要放啊 第一行 那是程式 不用怕XD
}.should raise_error(Mysql2::Error)
end
end
+
+ it 'should convert password to string' do
+ lambda do
+ client = Mysql2::Client.new(:password => 12345)
+ end.should_not raise_error(TypeError, "can't convert Fixnum into String")
+ end
it "should accept connect flags and pass them to #connect" do
klient = Class.new(Mysql2::Client) do
database = opts[:database]
錯誤訊息:.rvm/gems/ruby-1.9.2-p180/gems/dbi-0.4.3/lib/dbi/utils/date.rb:57:in <class:Date>': undefined method
deprecate' for DBI::Date:Class (NoMethodError)
測試用rb
# simple.rb – simple MySQL script using Ruby DBI module
require "dbi"
begin
# connect to the MySQL server
dbh = DBI.connect("dbi:Mysql:mysql:localhost", "root", "")
# get server version string and display it
row = dbh.select_one("SELECT VERSION()")
puts "Server version: " + row[0]
rescue DBI::DatabaseError => e
puts "An error occurred"
puts "Error code: #{e.err}"
puts "Error message: #{e.errstr}"
ensure
# disconnect from server
dbh.disconnect if dbh
end
執行 $ ruby test.rb 出現下列訊息即成功
Server version: 5.1.51
近期迴響