http://www.faqs.org/faqs/hp/hpux-faq/section-70.html
-----Original Message----- From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Nick Sent: Sunday, February 25, 2007 3:26 PM To: Capistrano Subject: [Capistrano] Re: Troubles deploying first rails application What's a "sticky bit" ? On Feb 25, 5:50 pm, Clayton Cottingham <[EMAIL PROTECTED]> wrote: > Top of my head... > > Check permissions on the parent folder too > > Also check for a sticky bit? > > -----Original Message----- > From: [email protected] [mailto:[EMAIL PROTECTED] On > > Behalf Of Jamis Buck > Sent: Sunday, February 25, 2007 2:44 PM > To: [email protected] > Subject: [Capistrano] Re: Troubles deploying first rails application > > The following is the error that is causing the deploy to fail: > > ** [out :: 192.168.1.4] ln: creating symbolic link `/var/www/ > faresearch/releases/20070225214903/public/system' to `/var/www/ > faresearch/shared/system': No such file or directory > > But I have no idea _why_ it is causing it to fail. I worked with > another person, who was getting this error when deploying to RHEL, > and he verified that the directories in question all exist. Has > anyone else dealt with this, and come up with a solution? I'm at a loss. > > - Jamis > > On Feb 25, 2007, at 2:54 PM, Nick wrote: > > > Dear all, > > > I'm having troubles deploying my first raisl application from my > > MacBook to my Ubuntu 6.10 linux box. > > > Here is the error message I get when doing cap cold_deploy: > > > cap setup > > * executing task setup > > * executing "umask 02 &&\n mkdir -p /var/www/faresearch /var/www/ > > faresearch/releases /var/www/faresearch/shared /var/www/faresearch/ > > shared/system &&\n mkdir -p /var/www/faresearch/shared/log &&\n > > mkdir -p /var/www/faresearch/shared/pids" > > servers: ["192.168.1.4"] > > Password: > > [192.168.1.4] executing command > > command finished > > nicolas-hinzes-computer:~/Documents/Mezzoo.com/faresearch Nick$ cap > > cold_deploy > > * executing task cold_deploy > > * executing task update > > ** transaction: start > > * executing task update_code > > * querying latest revision... > > * executing "if [[ ! -d /var/www/faresearch/releases/ > > 20070225214903 ]]; then\n svn co --no-auth-cache -q -r1 > >http://192.168.1.4/svn/faresearch/trunk/var/www/faresearch/releases/ > > 20070225214903 &&\n (test -e /var/www/faresearch/ > > revisions.log || (touch /var/www/faresearch/revisions.log && chmod > > 666 /var/www/faresearch/revisions.log)) && echo `date +\"%Y-%m-%d %H: > > %M:%S\"` $USER 1 20070225214903 >> /var/www/faresearch/revisions.log; > > \n fi" > > servers: ["192.168.1.4"] > > Password: > > [192.168.1.4] executing command > > command finished > > * executing task set_permissions > > * executing "chmod -R g+w /var/www/faresearch/releases/ > > 20070225214903" > > servers: ["192.168.1.4"] > > [192.168.1.4] executing command > > command finished > > * executing "rm -rf /var/www/faresearch/releases/20070225214903/ > > log / > > var/www/faresearch/releases/20070225214903/public/system &&\n ln - > > nfs /var/www/faresearch/shared/log /var/www/faresearch/releases/ > > 20070225214903/log &&\n ln -nfs /var/www/faresearch/shared/system / > > var/www/faresearch/releases/20070225214903/public/system" > > servers: ["192.168.1.4"] > > [192.168.1.4] executing command > > ** [out :: 192.168.1.4] ln: creating symbolic link `/var/www/ > > faresearch/releases/20070225214903/public/system' to `/var/www/ > > faresearch/shared/system': No such file or directory > > command finished > > *** [set_permissions] transaction: rollback > > * [set_permissions] rolling back > > * [update_code] rolling back > > * executing "rm -rf /var/www/faresearch/releases/20070225214903" > > servers: ["192.168.1.4"] > > [192.168.1.4] executing command > > command finished > > command "rm -rf /var/www/faresearch/releases/20070225214903/log /var/ > > www/faresearch/releases/20070225214903/public/system &&\\\n ln - > > nfs /var/www/faresearch/shared/log /var/www/faresearch/releases/ > > 20070225214903/log &&\\\n ln -nfs /var/www/faresearch/shared/ > > system /var/www/faresearch/releases/20070225214903/public/system" > > failed on 192.168.1.4 > > > Here is my deploy.rb: > > > require 'mongrel_cluster/recipes' > > > # This defines a deployment "recipe" that you can feed to capistrano > > # (http://manuals.rubyonrails.com/read/book/17). It allows you to > > automate > > # (among other things) the deployment of your application. > > > # > > ====================================================================== > > ======= > > # REQUIRED VARIABLES > > # > > ====================================================================== > > ======= > > # You must always specify the application and repository for every > > recipe. The > > # repository must be the URL of the repository you want this recipe to > > # correspond to. The deploy_to path must be the path on each machine > > that will > > # form the root of the application path. > > > set :application, "faresearch" > > set :repository, "http://192.168.1.4/svn/#{application}/trunk" > > > # > > ====================================================================== > > ======= > > # ROLES > > # > > ====================================================================== > > ======= > > # You can define any number of roles, each of which contains any > > number of > > # machines. Roles might include such things as :web, or :app, or :db, > > defining > > # what the purpose of each machine is. You can also specify options > > that can > > # be used to single out a specific subset of boxes in a particular > > role, like > > # :primary => true. > > > role :web, "192.168.1.4" > > role :app, "192.168.1.4" > > role :db, "192.168.1.4", :primary => true > > > # > > ====================================================================== > > ======= > > # OPTIONAL VARIABLES > > # > > ====================================================================== > > ======= > > set :deploy_to, "/var/www/faresearch" # defaults to "/u/apps/ > > #{application}" > > set :mongrel_conf, "#{current_path}/config/mongrel_cluster.yml" > > set :user, "root" # defaults to the currently logged in > > user > > # set :scm, :darcs # defaults to :subversion > > # set :svn, "/path/to/svn" # defaults to searching the PATH > > # set :darcs, "/path/to/darcs" # defaults to searching the PATH > > # set :cvs, "/path/to/cvs" # defaults to searching the PATH > > # set :gateway, "gate.host.com" # default to no gateway > > > # > > ====================================================================== > > ======= > > # SSH OPTIONS > > # > > ====================================================================== > > ======= > > # ssh_options[:keys] = %w(/path/to/my/key /path/to/another/key) > > # ssh_options[:port] = 25 > > > # > > ====================================================================== > > ======= > > # TASKS > > # > > ====================================================================== > > ======= > > # Define tasks that run on all (or only some) of the machines. You can > > specify > > # a role (or set of roles) that each task should be executed on. You > > can also > > # narrow the set of servers to a subset of a role by specifying > > options, which > > # must match the options given for the servers to select > > (like :primary => true) > > > desc <<DESC > > An imaginary backup task. (Execute the 'show_tasks' task to display > > all > > available tasks.) > > DESC > > task :backup, :roles => :db, :only => { :primary => true } do > > # the on_rollback handler is only executed if this task is executed > > within > > # a transaction (see below), AND it or a subsequent task fails. > > on_rollback { delete "/tmp/dump.sql" } > > > run "mysqldump -u theuser -p thedatabase > /tmp/dump.sql" do |ch, > > stream, out| > > ch.send_data "thepassword\n" if out =~ /^Enter password:/ > > end > > end > > > # Tasks may take advantage of several different helper methods to > > interact > > # with the remote server(s). These are: > > # > > # * run(command, options={}, &block): execute the given command on all > > servers > > # associated with the current task, in parallel. The block, if > > given, should > > # accept three parameters: the communication channel, a symbol > > identifying the > > # type of stream (:err or :out), and the data. The block is invoked > > for all > > # output from the command, allowing you to inspect output and act > > # accordingly. > > # * sudo(command, options={}, &block): same as run, but it executes > > the command > > # via sudo. > > # * delete(path, options={}): deletes the given file or directory from > > all > > # associated servers. If :recursive => true is given in the options, > > the > > # delete uses "rm -rf" instead of "rm -f". > > # * put(buffer, path, options={}): creates or overwrites a file at > > "path" on > > # all associated servers, populating it with the contents of > > "buffer". You > > # can specify :mode as an integer value, which will be used to set > > the mode > > # on the file. > > # * render(template, options={}) or render(options={}): renders the > > given > > # template and returns a string. Alternatively, if the :template key > > is given, > > # it will be treated as the contents of the template to render. Any > > other keys > > # are treated as local variables, which are made available to the > > (ERb) > > # template. > > > desc "Demonstrates the various helper methods available to recipes." > > task :helper_demo do > > # "setup" is a standard task which sets up the directory structure > > on the > > # remote servers. It is a good idea to run the "setup" task at least > > once > > # at the beginning of your app's lifetime (it is non-destructive). > > setup > > > buffer = render("maintenance.rhtml", :deadline => ENV['UNTIL']) > > put buffer, "#{shared_path}/system/maintenance.html", :mode => 0644 > > sudo "killall -USR1 dispatch.fcgi" > > run "#{release_path}/script/spin" > > delete "#{shared_path}/system/maintenance.html" > > end > > > # You can use "transaction" to indicate that if any of the tasks > > within it fail, > > # all should be rolled back (for each task that specifies an > > on_rollback > > # handler). > > > desc "A task demonstrating the use of transactions." > > task :long_deploy do > > transaction do > > update_code > > disable_web > > symlink > > migrate > > end > > > restart > > enable_web > > end > > > Here is my mongrel_cluster.yml: > > > --- > > cwd: /var/www/faresearch/current > > port: "8000" > > environment: > > ... > > read more > --~--~---------~--~----~------------~-------~--~----~ To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/capistrano -~----------~----~----~----~------~----~------~--~---
