/ / Rails 3.2.1 - Impossibile trovare rake-0.9.2.2 in nessuna delle fonti - Locaweb - ruby-on-rails, ruby-on-rails-3

Rails 3.2.1 - Non è stato possibile trovare rake-0.9.2.2 in nessuna delle fonti - Locaweb - ruby-on-rails, ruby-on-rails-3

Sono nuovo in Rails e sto riscontrando dei problemi. Informazioni sul sistema: Rails-3.2.1 Ruby-1.8.7 RedHat

Tutto funziona bene nel sistema locale. Il problema si verifica sull'host web. Sto cercando di configurare il sistema, ma le informazioni fornite non sono abbastanza buone. Sto usando mysql (mysql2 gem) e il database.yml è configurato correttamente (immagino).

database.yml

# MySQL.  Versions 4.1 and 5.0 are recommended.
#
# Install the MYSQL driver
#   gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
#   gem "mysql2"
#
# And be sure to use new-style password hashing:
#   http://dev.mysql.com/doc/refman/5.0/en/old-client.html
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: rffaguiar
pool: 5
username: rffaguiar
password: ******
host: mysql01.rffaguiar.com.br

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: mysql2
encoding: utf8
reconnect: false
database: rffaguiar
pool: 5
username: rffaguiar
password: ******
host: mysql01.rffaguiar.com.br

production:
adapter: mysql2
encoding: utf8
reconnect: false
database: rffaguiar
pool: 5
username: rffaguiar
password: ******
host: mysql01.rffaguiar.com.br

comando bundle

/home/storage/3/d2/f5/rffaguiar/rails_apps/teste_pos$ bundle
Using rake (0.9.2.2)
Using i18n (0.6.0)
Using multi_json (1.0.4)
Using activesupport (3.2.1)
Using builder (3.0.0)
Using activemodel (3.2.1)
Using erubis (2.7.0)
Using journey (1.0.1)
Using rack (1.4.1)
Using rack-cache (1.1)
Using rack-test (0.6.1)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.1.2)
Using actionpack (3.2.1)
Using mime-types (1.17.2)
Using polyglot (0.3.3)
Using treetop (1.4.10)
Using mail (2.4.1)
Using actionmailer (3.2.1)
Using arel (3.0.0)
Using tzinfo (0.3.31)
Using activerecord (3.2.1)
Using activeresource (3.2.1)
Using bundler (1.0.21)
Using coffee-script-source (1.2.0)
Using execjs (1.3.0)
Using coffee-script (2.2.0)
Using rack-ssl (1.3.2)
Using json (1.6.5)
Using rdoc (3.12)
Using thor (0.14.6)
Using railties (3.2.1)
Using coffee-rails (3.2.2)
Using johnson (1.2.0)
Using jquery-rails (2.0.0)
Using mysql (2.8.1)
Using mysql2 (0.3.11)
Using rails (3.2.1)
Using sass (3.1.14)
Using sass-rails (3.2.4)
Using uglifier (1.2.3)
[32mYour bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.[0m

L'app di test ha solo 1 controller (ciao), 1 vista (indice) e 1 modello. Quando il root è la pagina html delle rotaie predefinite, va bene, ma quando modifico la radice in "ciao # indice", ottengo 500 pagine di errore.

Non so se c'è qualcosa di correlato, ma quando si utilizza "rake test" ottengo questo:

Impossibile connettersi al server MySQL locale tramite socket "/Var/lib/mysql/mysql.sock"

Ma non c'è mysql.sock lì. Ho cercato un paio d'ore su questi problemi senza successo. Qualcuno può indicarmi la giusta direzione? Scusate se c'è qualcosa che non va, questa è la mia prima domanda qui.

Aggiornamento 1:

netstat -ln | grep mysql

Non restituisce nulla.

Aggiornamento 2: Ora sto ricevendo una pagina di errore del passeggero:

Impossibile trovare rake-0.9.2.2 in nessuna delle fonti (Bundler :: GemNotFound)

Ma la gemma è su Gemfile. Questo è il collegamento fornito dal mio webhost per configurare il test. Dimentica il portoghese, guarda il codice, =). Lì, puoi vedere l'IP sulla linea host e non un nome host come quello che sto facendo, ma dicono di usare il nome host perché l'IP del DB può cambiare. Sì, sto provando tutti i test usando entrambi.

Informazioni sulla linea socket: l'ho usato solo quando ho ricevuto l'errore mysql prima. Ora l'ho rimosso.

Informazioni sul passeggero: sto facendo i test dopo aver riavviato il passeggero con restart.txt

risposte:

1 per risposta № 1

Grazie per l'aiuto, ma il webhost mi ha risposto dopo giorni e giorni disturbandoli. Dicono (un breve riassunto):

Stai usando le rotaie 3.2.1 e questa versione non ha un buon risultato prestazioni nell'host condiviso. Abbiamo fatto un test usando le rotaie 3.0.9 e abbiamo funzionato normalmente. Ricostruire nuovamente l'applicazione con 3.0.9.

Non ho nemmeno bisogno di dire che cambierò webhost. Hanno un tutorial per le rotaie 3.2.1 e non funziona. Questo è pazzo, mi ha preoccupato per 3 giorni. Il mio webhost era Locaweb (BR).

Ancora grazie per l'aiuto.


0 per risposta № 2

Sta cercando socket nel percorso predefinito "/var/lib/mysql/mysql.sock" Se questo non è dove esiste, è necessario specificarlo esplicitamente nel parametro socket:

Per scoprire dove si trova il file socket, puoi fare:

netstat -ln | grep mysql

0 per risposta № 3

Prova ad eseguire:

$ mysqladmin variables

dovrebbe sputare la posizione del socket, se hai mysqladmin ...

MODIFICARE:

Iniziare a suonare per me come se Mysql non funzionasse. Prova:

$ cd /etc/init.d
$ ./mysqld start

O più semplicemente:

$ /etc/init.d/mysqld start

0 per risposta № 4

Dal momento che si verificano problemi di autorizzazione durante il tentativo di riavvio mysqld, Ti consiglio di inviare una email al tuo webhost e di chiedere loro quale database.yml il file dovrebbe apparire come se si desidera eseguire un progetto Rails sul proprio sistema.

È probabile che abbiano aiutato altri clienti a risolvere questo problema in passato.

Se ricevi una risposta, ti incoraggio ad aggiungerla alla tua domanda in modo che altre persone che utilizzano lo stesso webhost sappiano come risolvere il problema del database.


0 per risposta № 5

Un po 'di lavoro con dig mostra che questa pagina spiega dove trovare i dettagli di configurazione di MySQL. Ciò implica per me che il tuo host web mantiene i server di database separati dai server delle applicazioni, e quindi il problema non è "la necessità di avviare MySQL".

La soluzione è probabilmente quella di rimuovere il file socket linea da database.ymle verificalo host, username, password e database sono corretti secondo il link sopra; si noti che l'implementazione della produzione sarà quasi sicuramente alla ricerca di un production sezione, non la development sezione.


0 per risposta № 6

Penso che la linea di socket non sia utile qui. Se fornisci una linea host AR, dovresti connetterti a questo host invece di utilizzare unix socket

Se non usi socket nella tua configurazione mysql, rimuovi questa riga.

Aggiornare

Altro punto non usa lo stesso database per test / dev / prod envirnonment poiché test cancellerà il database prima e dopo ogni test che esegue

Puoi provare a eseguire il comando seguente:

bundle exec rake test

Con esso verrà utilizzata la gemma attivata exeact instabile di quella di sistema.

In generale, quando si distribuisce al tuo pungolo o altro ambiente

fare a

bundle install command

prima quindi installa tutto il nuovo gioiello richiesto dalla tua app


0 per risposta № 7

Perché non provi a usare phpmyadmin su apache2 pervedere se MySQL funzionerà e anche per arrivare al tuo database per ispezione. Inoltre, può essere utile utilizzare le nuove guide 3.2.1 per utilizzare le versioni più recenti di ruby ​​come 1.9. Ho visto dove i post dicono che 1.8 ha problemi con le rotaie 3.1. In bocca al lupo!


0 per risposta № 8

1) Hai specificato una fonte corretta nel tuo Gemfile?

Ad esempio, potresti avere rubygem come fonte gemma nella tua macchina locale. Ma per il lato server, potrebbe essere necessario aggiungere source :rubygems nel tuo Gemfile

2) Controlla se hai escluso fornitore / cache nel tuo repository. Prova a includere questi file.