Arquivo da categoria ‘Ubuntu’

h1

No tray com Ruby e GTK

25-09-2009

Como tenho ultimamente estado meio ausente do blog, resolvi criar ao menos um post rápido.

Estes dias tive necessidade de colocar um ícone no tray do ubuntu, visando um possível desenvolvimento posterior. Com isso resolvi fazê-lo em Ruby + GTK.

Primeiro é necessário ter instalado o Ruby ( caso não tenha ele instalado veja o tutorial Aqui ) e o GTK.

Para a instalação do Gtk para o ruby no Ubuntu é preciso apenas rodar o comando abaixo:

sudo apt-get install ruby-gnome2

Após a instalação está pronto para usar-mos.

#Adicionando a biblioteca
require "gtk2"
#Criando objeto
tray = Gtk::StatusIcon.new
#Define a imagem que aparecerá
tray.file = "icone.png"
#Cria uma verificação de ação
#No clique no icone
tray.signal_connect('activate') do
puts "Clicou no tray"
quit
end
#Método para fechar o GTK
def quit
Gtk::main_quit
end
#Comando para iniciar o GTK
Gtk.main

Este pequeno código pode gerar inúmeras possibilidades de implementações legais.

Mais tarde posto algumas coisas sobre Ruby com GTK.

h1

Plugin para Passenger no Webmin

07-08-2009

Estes dias estava instalando na empresa onde trabalho um servidor para desenvolvimento e testes, então ao instalar o Webmin (Gerenciador web de servidores), vi a possibilidade de criar um modulo que gerencia-se a criação, edição e remoção de RailsBaseURI e RackBaseURI para o passenger (já estava cansado de adicionar editando diretamente o arquivo), abaixo farei uma explicação de como instalá-lo.
Primeiramente desenvolvi o modulo visando apenas trabalhar com um único virtual host apache, provavelmente mais tarde criarei um que possibilite vários, mas isso é só no futuro.
Como pré requisitos para o modulo tem-se, ter o apache2 instalado, possuir o passenger já funcionando em sua maquina (caso não tenha instalado ainda veja este tutorial), e obviamente ter o webmin instalado.
Crie um o arquivo vazio chamado rails.conf na pasta /etc/apache2 , seguindo o comando abaixo.
sudo touch /etc/apache2/rails.conf
Adicione então ao seu virtualhost a seguinte linha:
Include /etc/apache2/rails.conf
Assim fazendo com que sejam rodados as configurações presentes no arquivo.
Então baixe no link abaixo o arquivo com o módulo.
passenger.wbm.gz.doc (Como o wordpress não permite postar outras extensões renomeie o arquivo para passenger.wbm.gz )
Então abra o webmin acesse Webmin Configuration >> Webmin Modules selecione From uploaded file e encontre o arquivo e clique em install module.
Pronto agora no menu ao lado na categoria server irá aparecer passenger.
Qualquer duvida me poste um comentário.
Obrigado

h1

Passenger: Error message: No such file or directory – /nonexistent

18-12-2008

Ontem ao instalar o sistema no servidor de um cliente, me deparei com o seguinte erro :

Error message:
No such file or directory - /nonexistent

Já tinha visto este erro, mas não sabia como resolvê-lo e nem porque ele acontecia.
Ele existe pois alguns serviços do pessenger estavam sendo rodados por um usuário chamado nobody, e ao procurar a pasta “home” deste usuário, o ruby recebia “/nonexistent” como sendo sua pasta.

Update: Existe uma forma melhor de resolver isto, do que a apresentada abaixo, veja ela Aqui. Obrigado Walter.

A solução encontrada pra esse erro foi criar a pasta /nonexistent com o comando com permissões de super usuário.
# mkdir /nonexistent

Esta foi a solução mais rápida encontrada, para ser resolvido o problema, mas acho que deve existir uma forma melhor de corrigi-lo.

Espero ter ajudado.

h1

Problemas com o ruby + openssl

28-10-2008

Hoje fui testar os passos que comentei em outro post no ubuntu 8.10 , pra verificar se estavam corretos.

Pra não ficar na monotonia resolvi instalar o ruby do source, como eu já sabia que poderia ter problemas na hora de instalar o rubygems com o zlib instalei os pacotes zlib1g e zlib1g-dev, como citado na atualização daquele post.

Continuei feliz da vida instalando, funcionou direitinho o ruby , rubygems e o rails, e quando fui instalar o passenger o gem instalou corretamente mas tive uma feliz surpresa na hora de rodar o comando : sudo passenger-install-apache2-module

Apareceu então a seguinte tela:* GNU C++ compiler… found at /usr/bin/g++
* Ruby development headers… found
* OpenSSL support for Ruby… not found
* RubyGems… found
* Rake… found at /usr/local/bin/rake
* Apache 2… found at /usr/sbin/apache2
* Apache 2 development headers… found at /usr/bin/apxs2
* Apache Portable Runtime (APR) development headers… found at /usr/bin/apr-1-config
* fastthread… found
* rack… found

Pesquisei um pouco e encontrei em alguns fóruns a dica de instalar os pacotes: libopenssl-ruby1.8, openssl, libssl-dev e libssl0.9.8 , instalei os pacotes e nada.

Lembrei então de que as versões >= 1.8.7 ficam na pasta /usr/local/lib e não na /usr/lib que é a padrão da versão 1.8.6 que está como instável nos repositórios do ubuntu.

Então não teve jeito, desinstalei o ruby, apagando mesmo a pasta /usr/local/lib/ruby e na hora de instalar, adicionei o seguinte:
./configure --with-openssl-dir=/usr/lib
make
sudo make install

Após isso não tive mais problemas, instalei o rubygems, o rails e o passenger.
Espero que isso ajude.
Agradeço pelas visitas… qualquer dúvida é só deixar um comentário.
Obrigado

h1

Caminho padrão do Ruby

06-10-2008

Estarei disponibilizando aqui as pastas onde, por padrão, está instalado o ruby, e o rubygems:

Ubuntu 8.04:

  • Executável:
    /usr/bin/ruby1.8
  • Arquivos:
    /usr/lib/ruby/
  • gem:
    /usr/lib/ruby/gems/

Ubuntu 8.04:

  • Executável:
    /usr/bin/ruby1.8
  • Arquivos:
    /usr/local/lib/ruby/
  • gem:
    /usr/local/lib/ruby/gems/

Em breve mais…
Caso você tenha o caminho do ruby no seu S.O. favorito, deixe no comentário e estarei adicionando aqui.
Obrigado

h1

Tutorial de instalação do Rails com Phusion Passenger (mod_rails) para Ubuntu

28-08-2008

Mais um dos milhares e milhares de tutoriais de como instalar, mas as vezes é muito dificil de encontrar um que mostre tudo junto.

Primeiramente deve-se instalar o Ruby  e os programas necessários:

sudo apt-get install gcc g++ build-essential zlib1g zlib1g-dev

sudo apt-get install -y ruby1.8 ri1.8 rdoc1.8 rake irb1.8
Deve-se criar os links simbólicos para os executaveis, com os comandos:
cd /usr/bin
sudo ln -s ruby1.8 ruby
sudo ln -s ri1.8 ri
sudo ln -s rdoc1.8 rdoc
sudo ln -s irb1.8  irb

Para verificar se foi realmente instalado corretamente veja se há retorno ao comando:
ruby -v
Agora deve-se instalar o gerenciador de pacotes para o ruby o RubyGems.
Para isso pode-se utilizar-se do comando:
sudo apt-get install rubygems
ou então baixar o pacote mais atual do site e instalá-lo, isso é mais recomendável de se fazer.
E pode ser feito de uma maneira automatizada com os comandos:

LINK=$(wget -qO - http://rubyforge.org/frs/?group_id=126 |grep "rubygems-" -m 1 | sed 's/.*href="//g'| sed 's/".*//g')
VERSION=$(echo $LINK | sed 's/.*rubygems-//g' | sed 's/.t.*//g')
wget http://rubyforge.org$LINK
ARQ=$(echo $LINK |sed 's/.*rubygems-//g' )
tar -xvzf rubygems-$ARQ
cd rubygems-$VERSION
sudo ruby setup.rb

cd /usr/bin
sudo ln -s gem1.8 gem

Para verificar se foi realmente instalado corretamente veja se há retorno ao comando:
gem -v

Com isso se tem todo o ruby pronto para produção, porém está faltando agora o Rails e o Passenger. Para instalar o rails utiliza-se do gerenciador de pacotes RubyGems com o seguinte comando:

sudo gem install rails

Para verificar se foi realmente instalado corretamente veja se há retorno ao comando:

rails -v

Instalação do Passenger
Agora deverá ser instalado algumas dependencias dele:

sudo apt-get install -y apache2-mpm-prefork apache2-prefork-dev libapr1-dev libopenssl-ruby libopenssl-ruby1.8 libssl-dev  libssl0.9.8 g++ ruby1.8-dev

E para então instalar o passenger com o RubyGems

sudo gem install passenger

Agora ele está instalado, porém ainda falta instalar o modulo dele do apache.
Deve-se definir duas constantes antes de iniciar a instalação do módulo, são elas HTTPD e APXS2, ulilizando o comando :
export HTTPD=/pasta/do/httpd
export APXS2=/pasta/do/apxs2

No Ubuntu 8.04 e provavelmente nas versões anteriores o httpd é chamado de apache2ctl, abaixo segue o comando com a pasta padrões já inseridas.
export HTTPD=/usr/sbin/apache2ctl
export APXS2=/usr/bin/apxs2

Após definir as constantes instale o modulo apache do passenger utilizando o comando:
sudo passenger-install-apache2-module
Agora o modulo apache do passenger     está instalado, faltando apenas a configuração final.
Abre-se  o arquivo apache.conf ou o http.conf, no Ubuntu esses arquivos ficam no diretório /etc/apache2, e como dica utilize o arquivo http.conf, pois este até então está vazio.
Insira as seguintes linhas no arquivo:
LoadModule passenger_module /pasta/do/ruby/gems/versao_do_rubygems/gems/passenger-versao_do_passenger_instalado/ext/apache2/mod_passenger.so
PassengerRoot /pasta/do/ruby/gems/versao_do_rubygems/gems/passenger-versao_do_passenger_instalado
PassengerRuby /pasta/do/executavel/ruby1.8

No caso do ubuntu as linhas ficaram:
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3
PassengerRuby /usr/bin/ruby1.8

Ainda no mesmo arquivo adicione  a seguinte linha:
RailsEnv MODO_DE_EXECUÇÃO
O MODO_DE_EXECUÇÃO deve ser subistituido por:

production  #Caso o aplicativo rails já será utilizado para produção
development #Caso o aplicativo ainda esteja em desenvolvimento

Agora faltam somente 2 passos para que sua aplicação rails possa funcionar perfeitamente.

Caso queira que o rails rode um subdiretorio do / do apache altere o arquivo sites-enabled/default do apache a seguinte linha dentro do virtualhosts:

RailsBaseURI /subdiretorio

E faça um link simbólico da pasta public da sua aplicação rails para a pasta / do apache em alguns casos ela fica no /var/www.
cd /pasta/do/root/do/apache
ln -s /pasta/da/sua/app/public subdiretorio

Salve o arquivo.
E finalizando, reinicie o apache com o comando:
sudo apache2ctl restart

E agora é só desenvolver suas aplicações em rails.

Agradeço pela visita, qualquer erro é só falar.