Ruby on rails och MySQL - hur då?

Tråden skapades och har fått 24 svar. Det senaste inlägget skrevs .
1

Jag försöker lägga till stödet för MySQL till Ruby on Rails (ROR).
Men se det går inget vidare...
Själva installationen av ROR gick alldeles perfekt likaså installation av MySQL.
Men så kommer jag till avsnittet för att installera stödet för mysql...

sudo gem install mysql

var det första jag testade men det gick inte...
Sedan testade jag:

sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql

Det gick inte heller den klagar på att den inte hittar en lokaal instlalation av mysql.
gem filen saknas.
Precis samma sak när jag försöker få till sötdet för SQLite.
Antar att det är något enkelt men jag hittar inte felet.

Hur fixar jag till gem filen för mysql?

Senast redigerat 2005-09-23 10:16

Har tittat på http://gem.rubyforge.org/gems och här finns både swlite3 och mysql 2.6 gem, men remote installationen får åt helskotta av någon anledning, kan jag ladda ner dessa manuellt och köra dem?

Jag brukar själv köra in databasbindningarna via darwinports i stället, så får man allt installerat på ett så problemfritt och elegant sätt som möjligt:

port install rb-mysql (installerar ruby, mysql och mysql-bindningarna)
port install rb-rubygems
gem install rails

Se bara till att /opt/local/bin hamnar först i din $PATH, annars kommer den halvtrasiga fabriksinstallationen av Ruby att köras i stället för den som darwinports installerat. Du kan också köra PostgreSQL, kör bara en "port install rb-postgres" så har du allt som behövs installerat. Rails fungerar precis lika bra med båda, själv alternerar jag mellan postgres och sqlite3 beroende på behov.

Välkommen till Rails-gänget förresten!

Ursprungligen av Samuel K:

port install rb-mysql (installerar ruby, mysql och mysql-bindningarna)
port install rb-rubygems
gem install rails

Ja hur har då detta gått? Halvbra....
Första delen gick bra.
Andra delen havererar på installationen av ruby-gems eftersom den inte hittar paketen.

Jag har inte fortsatt efter det. Jaha vad gör jag nu då?
Kan jag styra om Darwon ports till andra ställen där paketet faktiskt finns?
För de tre adresser den testar dör finns faktiskt inte paketen.
Kan jag ladda ner själv och installera?
Vad gör jag?

Vad är felmeddelandet?

Så här pekar du den till mysql's lib och include:

sudo gem install mysql -- --with-mysql-lib=/usr/local/lib/mysql --with-mysql-include=/usr/local/include

Men på detta sätta känns det som jag måste installera Darwinports först eller?

Ursprungligen av Mattias Hedman:

Men på detta sätta känns det som jag måste installera Darwinports först eller?

Det är ju för tustan det första man installerar så fort macen packats upp ur kartongen Går på en minut, och besparar en otroligt mycket tid och elände. Finns liksom ingen anledning att inte använda det.

Vad får du för felmeddelande om du kör "gem install --debug mysql"?

Ursprungligen av Samuel K:

Det är ju för tustan det första man installerar så fort macen packats upp ur kartongen Går på en minut, och besparar en otroligt mycket tid och elände. Finns liksom ingen anledning att inte använda det.

Jaså det är det?
VIsa hur jag gör då... eller ge mig en länk.

Ursprungligen av Samuel K:

Vad får du för felmeddelande om du kör "gem install --debug mysql"?

mattiash:~/Downloads/rubygems-0.8.11 mattiash$ gem install --debug mysql
Exception `Errno::ENOENT' at /usr/lib/ruby/site_ruby/1.8/rubygems/config_file.rb:12 - No such file or directory - /Users/mattiash/.gemrc
Attempting local installation of 'mysql'
Exception `Gem::FilePermissionError' at /usr/lib/ruby/site_ruby/1.8/rubygems/installer.rb:73 - You don't have write permissions into the /usr/lib/ruby/gems/1.8 directory.
ERROR:  Error installing gem mysql[.gem]: You don't have write permissions into the /usr/lib/ruby/gems/1.8 directory.

Hm, nu såg jag ju att du hade postat felmeddelandena, så går det om man inte läser hela tråden innan man postar... *pinsamt*

Problemet är i alla fall att den inte hittar mysql-biblioteket och därför misslyckas med att länka till det. Men så länge biblioteken ligger i /usr/local/lib så ska det som johan skrev fungera. Vidhåller dock fortfarande att du borde överväga att installera en riktig pakethanterare, hade besparat dig hela den här tråden

Aha! Den försöker alltså installera men till en katalog som ägs av root. Kör via sudo i stället, så ska det problemet försvinna (så får vi se om fler dyker upp, borde inte göra det men man vet ju aldrig).

Darwinports hittar du på www.darwinports.org, klicka på "Get DarwinPorts" så kan du tanka hem en dmg som innehåller en installerare.

Detta är felmeddelandet jag får:

Attempting local installation of 'mysql'
Local gem file not found: mysql*.gem
Attempting remote installation of 'mysql'
ERROR:  While executing gem ... (SocketError)
    getaddrinfo: No address associated with nodename

Med internet:

mattiash:~/Downloads/rubygems-0.8.11/test mattiash$ sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql --with-mysql-include=/usr/local/mysql/include/
Password:
Attempting local installation of 'mysql'
Local gem file not found: mysql*.gem
Attempting remote installation of 'mysql'
ERROR:  While executing gem ... (SocketError)
    getaddrinfo: No address associated with nodename
mattiash:~/Downloads/rubygems-0.8.11/test mattiash$ sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql --with-mysql-include=/usr/local/mysql/include/
Attempting local installation of 'mysql'
Local gem file not found: mysql*.gem
Attempting remote installation of 'mysql'
Building native extensions.  This could take a while...
ERROR:  While executing gem ... (RuntimeError)
    ERROR: Failed to build gem native extension.
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.6 for inspection.
  ruby extconf.rb install mysql -- --with-mysql-dir=/usr/local/mysql --with-mysql-include=/usr/local/mysql/include/\nchecking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no


Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.6/gem_make.out
Ursprungligen av Mattias Hedman:
[....]
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.6 for inspection.
  ruby extconf.rb install mysql -- --with-mysql-dir=/usr/local/mysql --with-mysql-include=/usr/local/mysql/include/\nchecking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no

Låter som att säkvägen inte är rätt, hittar varken includes eller lib filerna..

Jag har laddat ner gem filen, vart ska jag lägga den för att den ska hittas lokalt?

låter definitivt som något roligt dns fel eller liknande.

Annars kan du lägga .gem filen i samma dir som som jobbar i, 'gem install xyz' defaultar till att kolla i den lokala katalogen först, sen gem servern

Ja ja ja.
Som jag sa visa hur jag gör eller peka på en länk.

Mysql ligger i /usr/local/mysql är det fel det? Så installerade mysql.com paktet det i alla fall.
Den är igång också....

Ursprungligen av Mattias Hedman:

Mysql ligger i /usr/local/mysql är det fel det? Så installerade mysql.com paktet det i alla fall.
Den är igång också....

Det är inte fel, åtminstone inte så länge det är den sökvägen du anger när du installerar mysql-bindningarna.

Hm, dags för lunch. Får se om problemet är löst när jag är tillbaka

Fixar detta under lunchen... återkommer.

Kan försäkra Mattias om att det är en barnlek att installera Darwinports, gjorde det häromdagen.

Enda saken som inte stämde med instruktionerna var att jag fick lägga "export PATH=$PATH:/opt/local/bin" osv i ~/.bash_login istället för i ~/.profile för att få det att fungera.

Det verkar ha gått bra att köra på Darwinports håller på att köra första delen av vad Samuel skrev. Det tar en stund verkar det som.

  • Oregistrerad
  • 2005-09-24 12:33

Nu är wiki uppe igen på Ruby on Rails hemsida, ta och kika in på:
http://wiki.rubyonrails.com/rails/pages/HowtoInstallOnOSXTiger

Har för mig att det finns en bra lösning bland "comments" gällande MySQL.

Jag tror jag har lyckats installera allt men hur testar jag om det fugerar som det ska?
Jag är totalnybörjare...

Mattias, gör dig själv en tjänst och köp boken med en gång. Den är grym!

Ursprungligen av capojava:

Mattias, gör dig själv en tjänst och köp boken med en gång. Den är grym!

Intressant, den kanske man borde skaffa, jag är lite sugen på att ta tag i det här med Rails och därmed Ruby (och det är delvis Samuel K:s fel ) och en sån bok verkar vara en bra startpunkt.

Ursprungligen av Adrian B:

Intressant, den kanske man borde skaffa, jag är lite sugen på att ta tag i det här med Rails och därmed Ruby (och det är delvis Samuel K:s fel ) och en sån bok verkar vara en bra startpunkt.

Absolut, den är otroligt bra. Känner iofs inget större behov av att köpa den själv, men det finns ingen bättre start än att skaffa den boken. Man klarar sig iofs hyfsat med wikin, api-dokumentationen, online-manualerna och #rubyonrails på freenode, men det är oändligt mycket smidigare att ha allt tillgängligt i bokform. Då missar man heller inga bra tips och trix, utan en bra bok att ta till är det liksom lätt hänt att man bara fokuserar på att lösa ett specifikt problem och går miste om mycket bra sidoinformation.

Kan i övrigt varmt rekommendera själva ramverket också för den delen, det har gjort webbutveckling roligt igen. Men den ståndpunkten har jag kanske framfört några gånger redan

  • Medlem
  • Gävle
  • 2005-09-25 19:54

Själv har jag både Rails-boken och Ruby-boken i både papper och PDF-format. Pappersutgåvorna har jag bara bläddrat lite i, men PDF-utgåvorna är riktigt praktiska då de ju går att söka i (och spotlight gör det riktigt smidigt).

1
Bevaka tråden