Problem z instalacją

Instalacja pakietu: gem install passenger przebiegła bez problemowo, oczywiście jako sudo gem install passenger

Przy próbie instalacji tego pakietu : passenger-install-apache2-module wyrzuca błąd?

Permission problems

This installer must be able to write to the following directory:

/Users/tomekd/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.19

But it can’t do that, because you’re running the installer as tomekd.
Please re-run this installer as root.

polecenie sudo nie działa?
w jaki sposób ponownie uruchomić ten instalator jako administrator z tym pakietem powyżej?

Ale czemu chcesz używać sudo z rvm? Założenie rvma jest takie, żeby nie używać sudo ;).

W powyższej komendzie bez sudo nie działał pakiet instalatora!

Czy problem leży po stronie rvm

rvm 1.16
ruby 1.9.3
rails 3.2.9

passenger-install-apache2-module
Welcome to the Phusion Passenger Apache 2 module installer, v3.0.19.

Checking for required software…

  • GNU C++ compiler… found at /usr/bin/g++
  • Curl development headers with SSL support… found
  • OpenSSL development headers… found
  • Zlib development headers… found
  • Ruby development headers… found
  • OpenSSL support for Ruby… found
  • RubyGems… found
  • Rake… found at /Users/tomekd/.rvm/wrappers/ruby-1.9.3-p194/rake
  • rack… found
  • Apache 2… found at /usr/sbin/httpd
  • Apache 2 development headers… found at /usr/sbin/apxs
  • Apache Portable Runtime (APR) development headers… found at /usr/bin/apr-1-config
  • Apache Portable Runtime Utility (APU) development headers… found at /usr/bin/apu-1-config

Permission problems

This installer must be able to write to the following directory:

/Users/tomekd/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.19

But it can’t do that, because you’re running the installer as tomekd.
Please re-run this installer as root.

A patrzyłeś w ogóle jakie uprawnienia ma ten katalog i dla jakich użytkowników? Nie prościej byłoby zmienić uprawnień po prostu?

[quote=Thomas.programming]* Apache 2 development headers… found at /usr/sbin/apxs

  • Apache Portable Runtime (APR) development headers… found at /usr/bin/apr-1-config
  • Apache Portable Runtime Utility (APU) development headers… found at /usr/bin/apu-1-config

Permission problems

This installer must be able to write to the following directory:

/Users/tomekd/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.19

But it can’t do that, because you’re running the installer as tomekd.
Please re-run this installer as root.[/quote]
Do passengera robiłem przymiarki raz, ale zrezygnowałem dawno temu na rzecz zwykłego serwowania aplikacji + proxy z przodu, więc moje uwagi potraktuj bardzo luźno.
PRAWDOPODOBNIE komunikat błędu jest mylny, tzn. masz problemy z permission, ale nie z tym katalogiem.
Passenger to moduł, a apache musi mieć moduły w ścisłe zadeklarowanym miejscu, “tam gdzie tylko root sięga”.
Jest to związane z filozofią działania serwera http na porcie 80, całego systemu POSIX etc etc.
Więc, jeśli nie mas uprawnień root’a na tej maszynie, to nawet nie próbuj, bo i tak nie będziesz w stanie załadować tego modułu do apacha.
Jeśli natomiast masz a nie działa sudo to doinstaluj je. Pakiet powinien nazywać się “sudo”.
Z nazwy katalogu widzę, że nie linux tylko coś *BSD, może mac. Nie pamiętam, czy osx lub brew ma sudo.
Ewentualnie instalacja passengera z pozycji roota w systemie (man su)

Miałem to samo, chciałem zainstalowac nginx + passanger i dostawałem podobny błąd, po kilku próbach ze stawianiem systemu od nowa i kombinowaniem z różnymi ustawieniami , zrezygnowałem z passengera i szczęsliwie używam unicorna wg instrukcji z railscastow :slight_smile:

Jeszcze z nim powalczę!!! A system na jakim pracuje to Mac os x Lion 10.7

Jeśli nie masz dużego rozeznania w shellu i budowie systemu POSIX, odpuść., bo się zniechęcisz i stracisz czas.
To naprawdę jest robota dla administratora systemu, i to takiego z wiedzą developerską.

W skrócie - możesz taki moduł zainstalować tylko z konta root’a (admina macosx)
Bo może i używasz rvm, ale chcesz zbudować moduł dla apache, czyli systemowego serwera http który leży poza rvm.
Możesz zrobić to przelogowując się na konto administratora (root’a) w shellu poleceniem:
$ su -s
Zostaniesz poproszony o hasło.
wtedy prompt powinien się zmienić z $ na #
Zainstalujesz passengera. Zakładając, że będziesz miał w systemie wszystkie biblioteki których potrzebuje do kompilacji/instalacji.
Problem będzie taki, że skompiluje się z rubym systemopwym a nie tym z rvm z katalogu domowego, co MOŻE skutkować z kolei tym, że przy starcie twojej aplikacji zaliczy segfaulta z komunikatem, że mu wersje rubiego nie pasuja.
Oczywiście można to obejść. Jeśli zdobędziesz wiedzę o zmiennych środowiskowych typu $PATH $LD_PATH (nawet nie jestem pewien, czy w macosx one się tak nazywają, bo chyba nie, nawet nie pamiętam, jaki rodzaj shella tam jest ;( )

Naprawdę, w developerskim środowisku męczenie się z ustawieniem passengera to średni pomysł.
Jako, że jak rozumiem wszystko będzie działać na localhoście to normalnie odpal sobie aplikacje na wbudowanym standardowo webricku:
$ rails s

Nie zniechęć się prędkością działania - to webrick w developerskim środowisku.
Dodaj do zakładek localhost:3000 jako Rails i już po kłopocie

rvmsudo próbowałeś?

Webrica używałem do tej pory! rvmsudo nie daje rezultatu.

Czym sie różni Capistrano od Passengera?

https://github.com/capistrano/capistrano - narzędzie, dzięki któremu możesz wrzucać swój kod na zdalny w serwer, uaktualniać tam pliki, zarządzać migracjami

https://www.phusionpassenger.com - serwer aplikacji, który odpowiada, za to żeby aplikacja działała.

W skrócie przy pomocy capistrano dostarczas kod, który uruchamia passenger. Capistrano może też uruchamiać/restartować passengera.

I co Ci w nim przeszkadza? Zresztą nieważne.
Chcesz serwować inaczej(szybciej?) aplikację, zainstaluj Mongrel’a, Thin’a, Unicorn’a, Pumę. (wybierz jeden, wszystkie to serwery aplikacji.
Zbindują się na określony port, tzn zgłoszą do działania całą aplikację - wtedy z przodu najlepiej postawić serwer http nginx (z systemu portów homebrew, jeszcze wcześniej czeka cię instalacja środowiska developerskiego Xcode) i podać mu w konfiguracji domeny, że ma obsługiwać upstream na określonym porcie. Przed instalacją nginx’a wyłącz systemowego apacha.

Ktoś sugerował, że będzie łatwo?
:wink:

Nikt nie powiedział ze będzie łatwo.
Co było trudne i ciężkie teraz jest banalne.

A po za tym jeżeli czegoś nie da się zrobić, potrzebny jest ktoś kto o tym nie wie - przyjdzie i to zrobi :slight_smile: !!!

Tak wiec ja nie jestem wcale wybredny jeżeli chodzi o Webrica, dotarłem do pewnego etapu książki Agile Web Development with Rails 4 i chciałbym iść jej tokiem rozumowania, a kolejnym jej etapem jest instalacja Passengera (dokładnie str.231 jeżeli ktoś posiada tą ksiązkę), ale widzę że będę musiał skorzystać z nginx’a. Także dzięki za podpowiedzi - nie pójdą na marne.