Решение "Could not find rake-0.8.7 in any of the sources"
Решил деплоить с Capistrano, но потом подумал что еще хочу поработать в девелопменте.
В приложении на команды получал ошибку
=> Problem loading ./config/boot.rb
=> Could not find rake-0.8.7 in any of the sources
решил обновить бандл
$ bundle update
You have modified your Gemfile in development but did not check
the resulting snapshot (Gemfile.lock) into version control ...
Погуглил и нашел решение
$ rm -rf .bundle && bundle install && git add Gemfile.lock && git commit -m "Added Gemfile.lock"
Start PostgreSQL server on login (Mac OS X Snow Leopard)
Тут описано решение проблемы с ошибкой/ Here is the solution to the 'dubious ownership error'
launchctl: Dubious ownership on file (skipping)
подходит для любого .plist, в моем случае это был автозапуск сервера PostgreSQL/ You may use it with any .plist file, in my case that was automatically loading PGDB server on login
После установки PostgreSQL в /usr/local (http://zaqwery.rubyclub.com.ua/blogs/159-Установка-Git--Homebrew--Ruby-Gems--Nginx--Thin--PostgreSQL-на-Mac-OS-X-Snow-Leopard.html) мы хотим чтобы сервер БД запускался при любом входе в систему
1.создаем файл/create file
org.postgresql.postgres.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>org.postgresql.postgres</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/postgres</string>
<string>-D</string>
<string>/usr/local/var/postgres</string>
<string>-r</string>
<string>/usr/local/var/postgres/server.log</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>your_user</string>
<key>WorkingDirectory</key>
<string>/usr/local</string>
</dict>
</plist>
2. сохраняем его в/save file to /Library/LaunchDaemons/
3. меняем юзера на суперюзера/ change user to root
sudo chown -R root:wheel /Library/LaunchDaemons/org.postgresql.postgres.plist
4. устанавливаем .plist в автозагрузку/ setting the .plist file
sudo launchctl load /Library/LaunchDaemons/org.postgresql.postgres.plist
вот и все, перезагружаетесь и сервер БД автоматически запускается
Для тех кто основательно перешел на Homebrew нужно сделать предыдущие действия в другой папке/ for those who use Homebrew and want autoload .plist from parent Cellar directory
sudo chown -R root:wheel /usr/local/Cellar/postgresql/8.4.2/org.postgresql.postgres.plist
sudo launchctl load -w /usr/local/Cellar/postgresql/8.4.2/org.postgresql.postgres.plist
Во время следующей перезагрузки сервер БД уже будет запущен/ Next time you login PGDB server will have already been loaded
Good luck!
root, ownership error, Error, launchctl, postgres, postgresql, launch, login, Mac OS X, .plist, Homebrew, startup, Snow Leopard
Установка/ Install Git, Homebrew, Ruby Gems, Nginx, Thin, PostgreSQL на Mac OS X 10.6.2 Snow Leopard
Моя Конфигурация:
MacBook-2.16, Intel Core 2 Duo, 4Gb 667 DDR2 SDRAM
Mac OS X version 10.6.2 - Snow Leopard
Предпосылки:
После установки нового RoR (2.3.5) приложения с MySQL подключением, WEBrick начал выдавать ошибку после нескольких тразакций
WARN TCPServer Error: Address already in use - bind(2)
Логичным решением было запуск приложения на отличном от 3000 порту
script/server -e development -p 3001
Ошибка продолжалась на любом порту, причем сервер также не запускался, когда пытался поднять его на прежнем порту еще раз
После некоторых консультаций с Волошиным, выяснили, что вероятноя проблема в mysql-gem, который каким-то образом блокирует работу порта. После небольших раздумий решил раз и навсегда перейти на PostgreSQL. Переход благо дело не был связан с переносом большого количества данных, поэтому прогуглив установку postgres для MacOSX - решил воспользоваться разрекламированным MacPorts.
MacPorts, Fink, Homebrew - Системы управления пакетами — набор программного обеспечения, позволяющие управлять процессом установки, удаления, настройки и обновления различных компонентов программного обеспечения.
через несколько часов удалил Macports, т.к. / I deleted MacPorts because a number of reasons
1. занимает очень много места,
2. конфигурирование приложений происходит на лету, пожирая неоправдано много системных ресурсов
3. не использует /usr/local и уже имеющееся установленное содержимое,
4. каждый апдейт - это отдельная папка на диске, что со временем будет занимать много неоправданного места
Погуглив, решил попробовать Homebrew - это новая (конец 2009) система управления пакетами, активно развивающаяся
http://github.com/mxcl/homebrew
приемущества описаны в 13 пунктах которые не могут не радовать.
-------------------------------------------------------------------------------------------------------------------------------------------------
Прежде чем продолжать вам потребуется
- Mac OS X 10.6 Snow Leopard
- Xcode совместимый с Snow Leopard. Xcode — это пакет инструментов для разработки приложений под Mac OS X и iPhone OS, разработанный Apple. Последняя версия Xcode 3.2, бесплатно поставляется на дистрибутивном диске Mac OS X Install DVD вместе с операционной системой Mac OS X 10.6, хотя и не устанавливается по умолчанию. ( http://developer.apple.com/technology/xcode.html )
- Уверенность в запуске UNIX команд используя Terminal
-------------------------------------------------------------------------------------------------------------------------------------------------
Шаг 1. Устанавливаем PATH / Set the PATH
Запускаем Terminal из папки /Applications/Utilities
Воспользуйтесь предпочитаемым текстовым редактором (в моем случае это TextMate с установленной командой 'mate')
mate ~/.bash_profile
в конце это файла вставляем
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
Закройте и сохраните файл и запустите команду чтобы изменения вступили в силу
source ~/.bash_profile
Убедимся что путь обновлен, запуском команды
echo $PATH
Вы должны увидеть /usr/local/bin в начале строки возвращенной системой
Шаг 2. Установка GIT / Installing GIT
Создадим папку для храниения исходных инсталляций
mkdir ~/src
cd ~/src
Загрузим, распакуем и установим git в /usr/local
curl -O http://kernel.org/pub/software/scm/git/git-1.6.6.1.tar.gz
tar xzvf git-1.6.6.1.tar.gz
cd git-1.6.6.1
./configure --prefix=/usr/local
make
sudo make install
cd ..
Установка завершена, убедимся что git находится в /usr/local
which git
должны получить /usr/local/bin/git
Шаг 3. Установим Homebrew используя GIT / Install Homebrew using GIT
cd /usr/local
git init
git remote add origin git://github.com/mxcl/homebrew.git
git pull origin master
Установка Homebrew завершена, теперь можно устанавливать программные пакеты используя команду brew
Команды
brew search - выдаст список возможных рецептов для установки
brew list - список установленных компонентов
brew update - обновит Homebrew
Шаг 4. Установка RubyGems / Install RubyGems
cd ~/src
curl -O http://files.rubyforge.vm.bytemark.co.uk/rubygems/rubygems-1.3.5.tgz
tar xzvf rubygems-1.3.5.tgz
cd rubygems-1.3.5
sudo /usr/bin/ruby setup.rb
cd ..
Шаг 5. Уходим от постоянного sudo при установки джемов и указываем им путь /Cellar/gems/1.8 / Change ownership in order to get rid of 'sudo' everytime installing gems and setting Homebrew parent path.
sudo chown -R $USER /Library/Ruby /Library/Perl /Library/Python
sudo chown -R $USER /usr/local
echo export GEM_HOME="$(brew --prefix)/Cellar/Gems/1.8" >> ~/.bash_profile
echo export GEM_PATH="$(brew --prefix)/Cellar/Gems/1.8:/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/lib/ruby/gems/1.8/gems" >> ~/.bash_profile
echo "export GEM_HOME='$(brew --prefix)/Cellar/gems/1.8'" >> ~/.bashrc
source ~/.bashrc ~/.bash_profile
Шаг 6. Присоединияем Gems / Linking Gems
gem install brewbygems
Brewbygems - джем который позволяет устанавливаеть весть джем в папку Homebrew’s Cellar (Cellar/Gems/1.8/)
Для того чтобы система отрабатывала установленные джемы необходимо запусть команду
brew link gems
устанавливаем любой джем, например ROR
gem install rails
Шаг 5. Устанавливаем Nginx c модулем Passenger / Install Nginx with Passenger
brew install nginx --with-passenger
вы можете стартовать nginx командой sudo nginx и останавливать его командой
sudo nginx -s stop
Шаг 7. Устанавливаем PostgreSQL / Install PostgreSQL
brew install postgresql
В конце инсталляции будут инструкции как инициализировать БД, Запустить сервер, запустить сервир при входе, и установка postgres gem - сделайте это все
Шаг 8. Конфигурируем сервер / Configure server
a. Открываем файл
/usr/local/Cellar/nginx/0.7.62/conf/nginx.conf
(вероятно со временем будет другой префикс версии)
user your_user;
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
# Passenger
# passenger_root - будет менятся с вашей версией passenger
# вы можете получить текущий путь используя команду passenger-config --root
passenger_root /usr/local/Cellar/Gems/1.8/gems/passenger-2.2.9;
# passenger_ruby - скрипт который фиксит переменные среды
passenger_ruby /usr/local/bin/gem_ruby;
passenger_default_user your_user;
sendfile on;
keepalive_timeout 65;
# Include virtual host configurations
include your_user.conf;
}
Создаем файл
mate gem_ruby.sh
#!/bin/bash
export GEM_PATH=/usr/local/Cellar/Gems/1.8:/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/lib/ruby/gems/1.8/gems
export GEM_HOME=/usr/local/Cellar/Gems/1.8
/usr/bin/ruby $*
cохраняем его
в /usr/local/bin
Создаем файл
mate your_user.conf
server {
listen 80;
server_name your_user.local;
root /Users/your_use/path/to/public;
rails_env development;
passenger_enabled on;
charset utf-8;
}
Изменяем файл /etc/hosts
mate /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
127.0.0.1 your_user.local
9. Устанавливаем Thin / Install Thin
Thin - быстрый и простой ruby вэб сервер
Более подробно http://code.macournoyer.com/thin/
gem install thin
теперь вместо команды script/server можем использовать команду thin start для запуска приложения
10. Конечно же конфигурируем наш database.yml для PostgreSQL / Configure PostgreSQL connection
development:
adapter: postgresql
database: samsoffes_development
encoding: utf8
username: your_user
password:
host: localhost
production:
adapter: postgresql
database: samsoffes_production
encoding: utf8
username: your_user
password:
host: localhost
test:
adapter: postgresql
database: samsoffes_test
encoding: utf8
username: your_user
password:
host: localhost
или создаем новый Rails проект
rails projectname -d postgresql
Заходим в PostgreSQL prompt и создаем пользователя и БД
$ psql postgres
# CREATE USER your_user SUPERUSER;
# CREATE DATABASE projectname_development OWNER your_user;
# CREATE DATABASE projectname_test OWNER your_user;
# CREATE DATABASE projectname_production OWNER your_user;
# \q
Если нужно чтобы юзер был суперюзером для того чтобы тесты запускались корректно, см. http://blogs.law.harvard.edu/djcp/2009/01/rails-22-postgres-and-testing/comment-page-1/
-------------------------------------------------------------------------------------------------------------------------------------------------
Надеюсь найдется пользователь Mac OSX в наших краях, которому это будет полезно.
Git, Homebrew, Ruby Gems, nginx, postgresql, ruby, gem, brew, install, /usr/local, Snow Leopard, mac, OSX, terminal, bash, sudo, gems, Cellar, Leopard, Thin, web server, script/server, TCPServer Error, xcode, 10.6.2, bash_profile

Atom