[MacPorts] #26623: couchdb @1.0.1 may corrupt launchctl files for "re-install"

MacPorts noreply at macports.org
Sat Sep 25 16:04:58 PDT 2010


#26623: couchdb @1.0.1 may corrupt launchctl files for "re-install"
--------------------------------+-------------------------------------------
 Reporter:  llyodall@…          |       Owner:  jwa@…           
     Type:  defect              |      Status:  new             
 Priority:  Normal              |   Milestone:                  
Component:  ports               |     Version:  1.9.1           
 Keywords:                      |        Port:  couchdb         
--------------------------------+-------------------------------------------
Changes (by ryandesign@…):

  * owner:  macports-tickets@… => jwa@…
  * port:  => couchdb


Old description:

> This is bad because in general I have been able to uninstall and install
> other MacPort efficiently and effectively. I didn't expect my
> /Library/LaunchDaemons directory to completely disappear on the Uninstall
> of couchdb @1.0.1
>
> This is what I tried:
>
> shell > sudo port install couchdb
>
> shell > sudo port uninstall couchdb
>
> shell > sudo port install couchdb
>
> ERROR strings that print on "re-install"
> ......
> Error: reinplace: couldn't read file
> "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_couchdb/work/destroot/opt/local/Library/LaunchDaemons/org.apache.couchdb.plist":
> no such file or directory
> .....
>
> WORKAROUND
>
> shell > sudo mkdir
> /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_couchdb/work/destroot/opt/local/Library/LaunchDaemons
>
> shell > sudo touch
> /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_couchdb/work/destroot/opt/local/Library/LaunchDaemons/org.apache.couchdb.plist
>
> shell > sudo port install couchdb
>
> /*** this will succeed, however DO NOT run the launchctl yet ****/
>
> NOTE: the org.apache.couchdb.plist is created but there is no data. We
> need to add the PLIST data for launchctl.
>
> shell > sudo vi /Library/LaunchDaemons/org.apache.couchdb.plist
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
> "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
> <plist version="1.0">
> <dict>
>   <key>Label</key>
>   <string>org.apache.couchdb</string>
>   <key>EnvironmentVariables</key>
>   <dict>
>     <key>HOME</key>
>     <string>~</string>
>

>   </dict>
>   <key>ProgramArguments</key>
>   <array>
>     <string>/opt/local/bin/couchdb</string>
>   </array>
>   <key>UserName</key>
>   <string>couchdb</string>
>   <key>StandardOutPath</key>
>   <string>/dev/null</string>
>   <key>StandardErrorPath</key>
>   <string>/dev/null</string>
>   <key>RunAtLoad</key>
>   <true/>
>   <key>KeepAlive</key>
>   <true/>
> </dict>
> </plist>
>
> NOTE: Now execute the launchtctl command from the message of the
> couchdb successful install.
>

> shell > sudo launchctl load -w
> /Library/LaunchDaemons/org.apache.couchdb.plist
>
> shell > curl http://127.0.0.1:5984
>
> {"couchdb":"Welcome","version":"1.0.1"}
>

> Perhaps the install procedure needs to be a little bit proactive in
> creating directories if they do not exist.
>
> { :-)  (happy (coding)) }
>
> Jonathan

New description:

 This is bad because in general I have been able to uninstall and install
 other MacPort efficiently and effectively. I didn't expect my
 /Library/LaunchDaemons directory to completely disappear on the Uninstall
 of couchdb @1.0.1

 This is what I tried:

 {{{
 shell > sudo port install couchdb
 shell > sudo port uninstall couchdb
 shell > sudo port install couchdb
 }}}
 ERROR strings that print on "re-install"
 {{{
 ......
 Error: reinplace: couldn't read file
 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_couchdb/work/destroot/opt/local/Library/LaunchDaemons/org.apache.couchdb.plist":
 no such file or directory
 .....
 }}}

 WORKAROUND

 {{{
 shell > sudo mkdir
 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_couchdb/work/destroot/opt/local/Library/LaunchDaemons
 shell > sudo touch
 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_couchdb/work/destroot/opt/local/Library/LaunchDaemons/org.apache.couchdb.plist
 shell > sudo port install couchdb
 }}}

 /*** this will succeed, however DO NOT run the launchctl yet ****/

 NOTE: the org.apache.couchdb.plist is created but there is no data. We
 need to add the PLIST data for launchctl.

 {{{
 shell > sudo vi /Library/LaunchDaemons/org.apache.couchdb.plist

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
 "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
   <key>Label</key>
   <string>org.apache.couchdb</string>
   <key>EnvironmentVariables</key>
   <dict>
     <key>HOME</key>
     <string>~</string>


   </dict>
   <key>ProgramArguments</key>
   <array>
     <string>/opt/local/bin/couchdb</string>
   </array>
   <key>UserName</key>
   <string>couchdb</string>
   <key>StandardOutPath</key>
   <string>/dev/null</string>
   <key>StandardErrorPath</key>
   <string>/dev/null</string>
   <key>RunAtLoad</key>
   <true/>
   <key>KeepAlive</key>
   <true/>
 </dict>
 </plist>
 }}}

 NOTE: Now execute the launchtctl command from the message of the
 couchdb successful install.

 {{{
 shell > sudo launchctl load -w
 /Library/LaunchDaemons/org.apache.couchdb.plist
 shell > curl http://127.0.0.1:5984
 {"couchdb":"Welcome","version":"1.0.1"}
 }}}

 Perhaps the install procedure needs to be a little bit proactive in
 creating directories if they do not exist.

 { :-)  (happy (coding)) }

 Jonathan

--

Comment:

 Please remember to use WikiFormatting and to fill in the Port and Cc
 fields.

 AFAIK the install procedure is plenty proactive about creating all needed
 directories. Not sure yet what went wrong in your case.

-- 
Ticket URL: <https://trac.macports.org/ticket/26623#comment:1>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list