Frage

Backstory

Ich bin auf Rails 2.1 und frieren zu müssen, die Capistrano Juwel, um meinen vendor-Ordner (als mein Gastgeber gebrochen hat Ihre Mütze-gem-Abhängigkeiten, und ich will mich möglichst unabhängig).

Auf meinem lokalen windows-Rechner habe ich im folgenden meine Umgebung.rb

config.gem "capistrano", :version => "2.5.2"
config.gem "net-ssh", :lib => "net/ssh", :version => "2.0.4"
config.gem "net-scp", :lib => "net/scp", :version => "1.0.1"
config.gem "net-sftp", :lib => "net/sftp", :version => "2.0.1"
config.gem "net-ssh-gateway", :lib => "net/ssh/gateway", :version => "1.0.0"

Die Edelsteine waren schon installiert und so habe ich erstarrte Sie.Prüfen ...

>rake gems
...
[F] capistrano = 2.5.2
[F] net-ssh = 2.0.4
[F] net-scp = 1.0.1
[F] net-sftp = 2.0.1
[F]net-ssh-gateway = 1.0.0

Ich habe dann Begehen, um lokal und SVN update auf die pro-Linux-box.

Problem

Wenn ich versuche, und führen Sie meine gefrorenen version von Capistrano bekomme ich die folgende Fehlermeldung.

$ ./vendor/gems/capistrano-2.5.2/bin/cap deploy-with-migrations 
./vendor/gems/capistrano-2.5.2/bin/cap:3:in `require': no such file to load --capistrano/cli (LoadError)
    from ./vendor/gems/capistrano-2.5.2/bin/cap:3

Irgendwelche Ideen, was ich falsch gemacht habe?

Update

Finden Sie neue Verwandte Frage

War es hilfreich?

Lösung

Sie haben nichts falsch gemacht.Sie sehen, dieses Thema, weil der cap - Datei unter capistrano/bin/cap nicht ausgeführt werden soll als stand-alone.Sehen Sie das gleiche Ergebnis, wenn Sie versuchen, führen Sie es von Ihrem primären Edelstein-Ordner.Die cap ausführbare Datei (gespeichert auf /usr/bin/cap auf einem standard-linux-Installation) erfordert rubygems, Register capistrano und dann lädt die capistrano/bin/cap Datei.

Eine Lösung wäre hinzuzufügen require 'rubygems' zu Ihrem capistrano/bin/cap Datei:

#!/usr/bin/env ruby
require 'rubygems'
require 'capistrano/cli'
Capistrano::CLI.execute

Wenn Sie nicht ändern möchten capistrano/bin/cap könnten Sie zählen insbesondere die rubygems-Bibliothek, wenn Sie führen Sie es mit dem -r flag.Ihre angegebenen Befehl würde wie folgt Aussehen:

$ ruby -r rubygems ./vendor/gems/capistrano-2.5.2/bin/cap deploy-with-migrations

Andere Tipps

Ein weiterer Weg, um eine bestimmte version von Capistrano wäre so etwas wie ein alias hinzufügen, um Ihre .bash_login, wie die folgenden:

alias cap1='cap _1.4.2_ '

wo cap1 ist der Befehl, den Sie ausführen, und 1.4.2 ist die version, die Sie möchten, dass der Befehl ausgeführt, dann können Sie:

cap1 deploy

würde dann verwenden Sie diese version von capistrano die Bereitstellung Ihrer Anwendung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top