开发者

It seems that I can't install capistrano with rails-less. Why is this?

开发者 https://www.devze.com 2023-02-19 13:25 出处:网络
I\'m struggling here with no success in order to install capistrano on my Ubuntu dev machine. Here is the list of commands issued:

I'm struggling here with no success in order to install capistrano on my Ubuntu dev machine.

Here is the list of commands issued:

1) sudo apt-get update

2) sudo apt-get install build-essential git-core curl

3) bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )

4) echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' >> ~/.bashrc

5) (close and reopen terminal window)

6) rvm notes

(looked for: "For Ruby (MRI & ree) you should install the following OS dependencies:"

and did:

7) sudo aptitude install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev

Now we can install ruby by doing:

8) rvm install 1.9.2

Then we tell rvm to use it:

9) rvm 1.9.2

And to do it always:

10) rvm --default use 1.9.2

With ruby properly instaled we can now:

11) gem install capistrano

And then:

12) gem install railsless-deploy

Despite all those steps being successful steps, when I do: cap -T

I'm unable to see the deploy tasks listed as expected.

I only getting: cap invoke cap shell

listed.

Why?

Do I need a Capfile ? With some require setting开发者_Go百科s? If so, then, does that mean that we need to issue or capistrano command line commands only after we move the project directory? Please advice, I'm absolutely newbie on Capistrano here.

Thanks a lot, MEM


Yes you still need a Capfile.

STEP 1. Create a Capfile with the following command, running it from within the project directory:

capify .

(This will also create config/deploy.rb)

STEP 2. Edit this new Capfile as per the railsless-deploy readme, so that it has the following content:

require 'rubygems'
require 'railsless-deploy'
load    'config/deploy'

At this point you can run

cap -T

and you should see tasks such as "cap deploy" listed. However, capistrano knows nothing about your target server(s), etc, yet.

STEP 3. Edit config/deploy.rb to provide the details of your SCM, server name(s), etc.

For help on this, see the section "Configuration" in the Capistrano "From The Beginning" wiki.

You may also override the deploy task here if the default provided by railsless-deploy is unsuitable.

A minimal config/deploy.rb might look as follows:

set :user, "myuser"
set :application, "myapp"
set :repository,  "https://github.com/me/myapprepo"
set :scm, :git
default_run_options[:pty] = true
role :web, "myhost.example.com"
role :app, "myhost.example.com"

Of course you must correct the above with your app, host and login details.

You can then follow the typical path of

cap deploy:setup
cap deploy:check
cap deploy
# ...  etc

However, after cap deploy:setup has created the deploy directory tree (by default something like /u/apps/myapp/) on the remote server(s), you may have to alter ownership (or permissions) in order for cap deploy to run. The following will recursively change the owner and group of /u/apps/myapp/ to user "myuser".

sudo chown -R myuser. /u/apps/myapp

On our servers, I actually create this /u/apps/ directory and change its ownership on server preparation (say, with puppet), long before capistrano sees them. That way, developers can use cap deploy:setup and cap deploy, etc, without hitting these issues.

"does that mean that we need to issue or capistrano command line commands only after we move the project directory?"

I'm not sure I understand this part of your question. If you move your project directory, you'll still be able to execute capistrano commands, but you must always execute them from within the project directory.

0

精彩评论

暂无评论...
验证码 换一张
取 消