/usr/lib/ruby/1.8/rubygems.rb:578:in `report_activate_error': Could not find RubyGem builder (>= 0) (Gem::LoadError)
from /usr/lib/ruby/1.8/rubygems.rb:134:in `activate'
from /usr/lib/ruby/1.8/rubygems.rb:158:in `activate'
from /usr/lib/ruby/1.8/rubygems.rb:157:in `each'
from /usr/lib/ruby/1.8/rubygems.rb:157:in `activate'
from /usr/lib/ruby/1.8/rubygems.rb:49:in `gem'
from /var/lib/gems/1.8/bin/update_rubygems:18
Wszystko pięknie działa, ale dobrze byłoby to rozwiązać
Teraz zrobiłem “duży skok” - rake meta:development_studio:install (instaluję na Debianie Lenny).
Pojawiło się trochę błędów:
przy rubygems-update - to samo co post wyżej
przy instalacji mogrela - niespodzianka - brak make
przy tworzeniu dokumentacji do buildera:
ERROR: While generating documentation for builder-2.1.2
... MESSAGE: Unhandled special: Special: type=17, text="<!-- HI -->"
... RDOC args: --ri --op /var/lib/gems/1.8/doc/builder-2.1.2/ri --title Builder -- Easy XML Building --main README --line-numbers --quiet lib CHANGES Rakefile README doc/releases/builder-1.2.4.rdoc doc/releases/builder-2.0.0.rdoc doc/releases/builder-2.1.1.rdoc
(continuing with the rest of the installation)
Ale to chyba problem buildera, a nie Twojego instalatora
ruby-debug - to samo co przy mongralu
Przy instalacji postgresa:
a) nie mógł połączyć się z serwerem
b) po “** Patching” nastąpiła zwieszka, a po komunikat:
chown: missing operand after `postgres:postgres'
Try `chown --help' for more information
6. pg i ruby-pg - to samo co przy Mongrelu
Postaram się zatem poprawić te problemy i wrzucić do swojego repo. Jak z czymś będzie jeszcze problem, to dam znać.
Ad. 2, 4, 6 - pozwoliłem sobie dodać make-a do skryptu ubuntu.sh - nie zaszkodzi, a może pomóc (w ten sposób unikniemy tworzenia dwóch niemal identycznych skryptów instalacyjnych dla debiana i ubuntu). Można by również wykombinować coś takiego jak konfiguracja “prerekwizytów” (gdzie byłby make, ruby, etc.) ale trochę z tym za dużo zamieszania.
Z innej beczki - widzę, że do kolorowania używasz sekwencji bezpośrednio w stringach. Mam zamiar dorzucić dependency do mojego gem-a - apohllo-colors, który dodaje do Stringa metodę “hl”, robiącą dokłądnie to samo, ale ładniej http://github.com/apohllo/colors
Najlepiej by było dodać trzecia dystrybucję DEBIAN. Zlokalizować jakieś pliki charakterystycnze dla debiana (nie isttniejace w czystej instalacji ubuntu) i rzeczy specyficnze dla debiana robić pod debiana.
W ubuntu.sh można dorzucić build-essential do instalacji. Nie wiem cyz jest w debianie taki pakiet.
[quote]5. Przy instalacji postgresa:
a) nie mógł połączyć się z serwerem[/quote]
No to chyba wina repozytoriów?
Zawsze możesz powtórzyć instalację modułu. Nie powinno szkodzić.
I co do podpunktu b). Całkiem logiczne, ze chown nie wyszedł (patchownaie też) skoro pakiety postgresa si enie zainstalowały. Musze dodać sprawdznie wyjścia (exit_code) aplikacji i przerywać skrypt w razie błędu.
Ad 3: tak, to problem gemu.
Zobaczę co z tym rubygems. Może coś się zmieniło, albo po prostu też wina braku polecenia make.
EDIT:
ubuntu.sh ma za zadanie właśnie instalować prerekwizyty, jak to ująłeś, w sposób specyficzny dla ubuntu.
Dalej już są zadania rake i wsyzskto mozna zamknąć w zadaniach rake’a.
Swoją drogą taki build-essential może być (w odpowieni sposób) instalowany przez moduł rordevtoolkita. Wystarczy napisac receptę (mozna wykorzystac packages.yml)
[quote]5. Przy instalacji postgresa:
a) nie mógł połączyć się z serwerem
No to chyba wina repozytoriów?
Zawsze możesz powtórzyć instalację modułu. Nie powinno szkodzić.
I co do podpunktu b). Całkiem logiczne, ze chown nie wyszedł (patchownaie też) skoro pakiety postgresa si enie zainstalowały.[/quote]
No nie do końca - bo postgres się zainstalował, tylko chyba (automagicznie) nie uruchomił się serwer, jak mniemam (nie przyglądałem się dokładnie). Można by sprawdzić, czy serwer chodzi i ewentualnie go postawić przez /etc/init.d/…
EDIT
Widzę, że dla Fedory serwer jest stawiany, zatem zrobię to samo dla debiana (tyle, ze innymi poleceniami). Ale faktycznie trzeba najpierw znaleźć metodę jego wykrywania.
Mimo wsyzskto spróbowałbym wydzielić trzecią dystrybucję, debian. Różnic w przyszłości może być o wiele więcej. Nazwy pakietów sie moga nawet różnić (po to jest packages.yml). Z tego co wiem to ze ściezkami do binarek do gemów też jest chyba inaczej.
Poza tym debian DOMYŚLNIE nie ma sudo.
Niepokoją mnie te warningi o których mówiłes.
W debianie wystarcza apt-get install make, a w ubuntu nie trzeba nic. Sa już różnice. Wydzieliłbym zadanie.
Właśnie poszedł push z propozycją.
Żeby była jasność - chodziło mi tylko o skrypt instalacyjny. Jeśli wydzielimy prerekwizyty, to można tam wrzucić rozróżnienie na Debian/Ubuntu. Na poziomie pakietów i innych skryptów jestem jak najbardziej za. Na razie jednak nie wiem, jak odróżnić te systemy od siebie
EDIT
Może przez /etc/apt/sources.list ? Wiem, że w debianie standardowo są inne repozytoria niż w ubuntu.
Musimy znaleźć sposób odróżnienia ubuntu od debiana (fajnie by było gdyby za pomocą plików - jak nie da sie, to dopiszę sprawdzanie zawartości plików). Musze zainstalowac debiana na VM
Nie wiem, czy to wynika z wymagań najnowszych railsów, albo z specyfiki Debiana, ale uruchominie komendy “rails” okupione jest wcześniejszą litanią, pt:
gem install test-spec
gem install camping
apt-get install libapache2-mod-fastcgi
apt-get install libfcgi-dev
gem install fcgi
gem install memcache-client
gem install ruby-openid -v 2.0.4
apt-get install g++
gem install thin
(moduł dla apacza jest chyba opcjonalny, ale skoro instaluję libfcgi, to już robię z niej jakiś użytek).
Po kiego grzyba żeby uruchomić railsy, muszę mieć zainstalowane “camping”, “thin”, etc. etc.???
EDIT:
A to już są kompletne jaja:
$ ./script/server
Rails requires RubyGems >= 1.3.2 (you have 1.2.0). Please `gem update --system` and try again.
$ gem -v
1.2.0
$ gem update --system
ERROR: While executing gem ... (RuntimeError)
gem update --system is disabled on Debian. RubyGems can be updated using the official Debian repositories by aptitude or apt-get.
$ apt-get install rubygems
Reading package lists... Done
Building dependency tree
Reading state information... Done
rubygems is already the newest version.
No tak powoli składa się to do kupy. Wcześniej przecież był błąd z update_rubygems. Zatem próbowałem dalej:
$ update_rubygems
... error
$ gem install session
$ gem install hoe-seattlerb
$ gem install hoe
ERROR: Error installing hoe:
hoe requires RubyGems version >= 1.3.1
LOL - cykliczna zależność między wersjami - przynajmniej na Debianie:
update_rubygems -> hoe
hoe -> gem 1.3.1
Ma ktoś jakiś pomysł (rzecz jasna mogę zainstalować z źródeł rubygems, ale sorry, w którym wieku my żyjemy).
EDIT
Będzie zabawa ze zmianami wersji :)))
$ gem uninstall rubygems-update
$ gem install rubygems-update -v 1.3.1
$ update_rubygems
$ gem install hoe -v 2.0.0
$ gem install rubygems-update
$ update_rubygems
$ gem install hoe
O dziwo - działa. Ale nie mam wszystkich wcześniejszych gemów
Na Debianie tego nie obejdziesz. Rubygems z repo nie chce się update’ować. Trzeba albo ręcznie ze źródeł, albo dodać repozytoria squeeza gdzie jest chyba 1.3.4.
Ze dwa tygodnie temu instalowałem rails/apache/passenger na debianie i Thina nie instalowałem, a wszystko działa.
PS.
W repozytoriach lenny’ego też chyba jest 1.3.4
PS2
Będę dzisiaj instalował debiana na lapku to mogę pozapisywać co instaluję.
i odpaliłem railsy bez żadnego problemu. Nie wiem czemu wcześniej pluł się o te gemy (których teraz nie ma!!!). W każdym razie jeden problem z głowy.
EDIT
Przetestowałem też moją konfigurację sqlite3 - i działa! Wrzucam na githuba, chociaż na razie skonfigurowane jest tylko dla profilu Debian, który NIE JEST UŻYWANY!
Hm, zaczynam się zastanawiac czy nie usunąć autowykrywania dystrybucji i czy nie wymagać podania jej w zmiennej środowiskowej, bądź pliku konfiguracyjnym. Tak samo czy używać su czy sudo. Używanie sudo nie wymusza ciągłego wpisywania hasła administratora…
Problem się robi zbyt skomplikowany chyba.
Zmienną środowiskową mógłby ustawiać skrypt inicjujący (debian.sh, ubuntu.sh, fedora.sh) on też by instalował ruby’ego i uruchamiał kilka pierwszych tasków (instalacja make’a, update rubygems etc).
A propos sudo nie jest przez wszystkich wykorzystywane. To jest domyślne narzędzie w ubuntu, ale już nie w debianie, gdzie raczej korzysta się z su. Może po prostu zrobić koniecznym uruchamianie programu z poziomu roota?
def distribution
if not @@distribution
DISTRIBUTIONS.each do |dist, options|
filename = File.open(options[‘filename’], ‘r’)
@@distribution = dist if options[‘content’] =~ filename.gets
end
end
@@distribution
end
[…][/code]
Nie wiem na ile /etc/issue jest standardem, bo można by chyba distro rozpoznawać bezpośrednio czytając ten plik (bez configuracyjnego yamla)?
debian:
filename: /etc/issue
content: !ruby/regexp “/Debian/”[/code]
[/quote]
Yuk
A nie lepiej tak:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu karmic (development branch)
Release: 9.10
Codename: karmic
albo jakoś cat /etc/*release – też może zadziałać.
/etc/issue może być zmodyfikowany przez administratora systemu w celu wyświetlenia jakiejś informacji dla logujących się użytkowników. Wcale tam nie musi być nazwy czy wersji dystrybucji.