09-02-2010
Como muitos já sabem saiu a versão beta do Rails 3. Para quem deseja dar uma olhada nas novidades já é possível o instalar pelo gem install.
Abaixo estarei mostrando tudo que é necessário para que ele funcione no Ubuntu 9.10, o que talvez funcione perfeitamente para outras versões.
Se você possui o ruby e o rubygems já instalados sugiro que faça os passos 1,3,7.
1 – Começaremos instalando alguns pacotes necessários para compilação.
sudo apt-get install -y gcc g++ build-essential zlib1g zlib1g-dev sqlite3 libsqlite3-dev
2 – Agora instalamos o ruby.
sudo apt-get install -y ruby1.8 ri1.8 rdoc1.8 rake irb1.8
3 – Outro pacote necessário para compilação é o ruby1.8-dev que será instalado com o comando.
sudo apt-get install -y ruby1.8-dev
4 – Criando alguns links simbólicos para facilitar o trabalho.
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
5 – Instalando o rubygems.
O código abaixo irá fazer o download da versão mais nova e a instalará.
cd
mkdir instalacao
cd instalacao
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 ../..
rm -rf instalacao
6 – Link simbólico do rubygems
cd /usr/bin
sudo ln -s gem1.8 gem
7 – Instalando o Rails 3.0.0.beta.
Primeiro instale as gems com o comando.
sudo gem install tzinfo builder memcache-client rake rack rack-test rack-mount erubis mail text-format thor bundler i18n sqlite3
Instalando o rails.
sudo gem install rails --pre
Pronto agora verificando se funcionou corretamente.
rails -v
Rails 3.0.0.beta
Agora é só usar o rails 3 normalmente e brincar com as novas funcionalidades.
rails teste
Publicado em Linux, Programação, Ruby, Ruby on Rails, Ubuntu | Tagged Programação, Rails, Ruby on Rails, Ubuntu | Deixar um comentário »
22-01-2010
Está é uma dica rápida, a algum tempo atrás comecei a trabalhar com postgresql no rails e me deparei com o seguinte erro.
autenticação do tipo Ident falhou para usuário "user"
De imediato pensei que o usuário ou a senha estavam inválidos, então os conferi e funcionavam corretamente quando acessava o phppgadmin.
A configuração de produção do meu database.yml era assim.
development:
database: app_production
adapter: postgresql
encoding: unicode
pool: 5
username: user
password: 'MINHA_SENHA'
Para minha surpresa o problema estava em meu database.yml mesmo, mas não eram usuário e senha, e sim as opções host e port que mesmo localhost e 5432 sendo padrão não funcionavam se não fossem informadas. Para resolver foi necessário especificá-las e pronto, funcionou corretamente.
A configuração de produção do meu database.yml ficou assim.
development:
database: app_production
adapter: postgresql
encoding: unicode
pool: 5
username: user
password: 'MINHA_SENHA'
host: localhost
port: 5432
Publicado em Não classificado, Postgresql, Ruby, Ruby on Rails | Tagged Ruby, Ruby on Rails, Postgresql | Deixar um comentário »
11-01-2010
Com a última atualização do postgresql no ubuntu 9.10 (versão 8.4.2 do postgresql) , apareceu um pequeno problema, o phppgadmin não estava mais conseguindo exportar os dados em SQL. Ao tentar executar a exportação a tela ficava em branco (sinal de erro de execução no código em PHP), verifiquei o log de erros do apache e encontrei o seguinte erro:
/usr/lib/postgresql/8.4/bin/pg_dump: invalid option — ‘d’
Try “pg_dump –help” for more information.
Pronto com essa informação percebi que o problema estava na remoção da opção -d do pg_dump na nova versão do postgresql, então procurei no phppgadmin o arquivo que executava o php_dump e encontrei este arquivo “dbexport.php” (para ser mais exato /usr/share/phppgadmin/dbexport.php no ubuntu).
Para corrigir é necessário apenas alterar as linhas 104
if ($_REQUEST['d_format'] == 'sql') $cmd .= ' -d';
para
if ($_REQUEST['d_format'] == 'sql') $cmd .= ' --inserts';
e a linha 112
if ($_REQUEST['sd_format'] == 'sql') $cmd .= ' -d';
para
if ($_REQUEST['sd_format'] == 'sql') $cmd .= ' --inserts';
e pronto. Com isso o phppgadmin voltou a exportar em SQL.
Publicado em Linux, Postgresql, Ubuntu | Tagged pg_dump, Phppgadmin, Postgresql, Ubuntu | Deixar um comentário »
09-12-2009
Realizei alguns testes com o FireWatir mas achei ele um tanto lento, especialmente por ter de esperar ele “digitar” as informações. Então desenvolvi um método para o TextField para que ele somente inclua os valores, sem demorar muito.
Veja o código abaixo.
module FireWatir
class TextField < InputElement
def set_fast( setThis )
assert_exists
assert_enabled
assert_not_readonly
highlight(:set)
@o.scrollIntoView
@o.focus
@o.select()
@o.fireEvent("onSelect")
@o.value = ""
@o.fireEvent("onKeyPress")
@o.value = setThis
highlight(:clear)
@o.fireEvent("onChange")
@o.fireEvent("onBlur")
end
end
end
Para utilizar precisa-se apenas trocar o comando set por set_fast.
require 'rubygems'
require 'firewatir'
ff = FireWatir::Firefox.new
ff.goto('http://www.google.com.br')
ff.text_field(:name,"q").set_fast('dannnylo.wordpress.com')
ff.button(:name,"btnG").click
Esse teste fará com que o firefox entre no google e pesquise pelo meu blog
.
Espero ter ajudado.
Publicado em Firefox, Firewatir, Programação, Ruby, testes | Tagged Firefox, Firewatir, lento, rápido, Ruby, testes | Deixar um comentário »
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.
Publicado em Programação, Ruby, Ubuntu | Tagged GTK, Ruby, Tray, Ubuntu | Deixar um comentário »
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
Publicado em Linux, Programação, Ruby on Rails, Ubuntu | Tagged mod_rails, passe, passenger, Phusion Passenger, Rails, webmin | Deixar um comentário »
03-05-2009
Ao tentar usar o openssl com o shoes tive o seguinte problema, ele pedia o arquivo ssleay32.dll, depois de bater um pouco a cabeça, pesquisando e testando algumas soluções, decidi baixar o arquivo de instalação do openssl para windows e lá estava o arquivo que o shoes pedia.
Então copiei da pasta bin o arquivo para a pasta do shoes e não funcionou, deu erro falando que era neste arquivo libeay32.dll, então copiei ele também e pronto, openssl funcionado no windows e sem problemas.
Os instalador do openssl do windows pode ser encontrado neste link openssl-0.9.8e_WIN32.zip. Os arquivos estão dentro da pasta bin.
Publicado em Programação, Ruby, windows | Tagged OpenSSl, Ruby, Shoes, windows | Deixar um comentário »
27-04-2009
Para utilizar a Cifragem RSA com ruby, utilizaremos o OpenSSl.
Incluindo a biblioteca Openssl
require "openssl"
Criando uma chave privada:
chave_privada= OpenSSL::PKey::RSA.new(1024)
Segundo o algoritmo, a chave privada RSA é formada de três número primos representados pelas letras: P,Q,D.
Para saber o valor de cada uma delas é necessário somente utilizar o seguintes comandos:
chave_privada.p
chave_privada.q
chave_privada.d
Para gerar uma chave publica, a qual será usada na decifragem, é necessário apenas o seguinte comando:
chave_publica=chave_privada.public_key
A partir da chave privada consegue-se cifrar um texto por exemplo: “Brincando com RSA”
texto_cifrado=chave_privada.private_encrypt("Brincando com RSA")
Como resultado se obtém o texto:
texto_cifrado
=>”\215\322\351\35331\273\av\200\372a_k32\f\21230\336z359[\257^900>\343\345>B\335d v24\207\350\327\e\355Z\2263\bfKW06\312\216\nN35\343/\303Kr\217\254\333k%\366\2615Lz\360\253\205\352\212\303?\366P\”\372o C\24736.\233W\252\240\304\27505\23220\272M\305\303\363@Q\353B\311w\363\336\265\363\317′\270\263<\32535g\277\234#238~\316WL\335″
Para decifrar o texto acima, poderíamos utilizar a mesma variável como abaixo:
chave_privada.public_decrypt(texto_cifrado)
=> “Brincando com RSA”
Mas como dificilmente em uma mesma instância existiria cifragem e decifragem RSA, o texto da chave publica deve ser salvo e utiliza-se da seguinte forma, cria-se uma chave publica como no código abaixo:
nova_chave_publica = OpenSSL::PKey::RSA.new(chave_publica)
Assim para decifrar o texto é só utilizar o seguinte comando:
nova_chave_publica.public_decrypt(texto_cifrado)
Para saber os valores de E e N que formam a chave publica utiliza-se os seguintes comandos
chave_privada.e
chave_privada.n
Para mais informações acesse a Documentação oficial.
Publicado em Programação, Ruby | Tagged Cifragem, Decifragem, OpenSSL::PKey::RSA, RSA, Ruby | Deixar um comentário »
22-04-2009
Uma dica rápida, mas que pode ajudar muito, apartir da versão 2.2.0 do rails foi adicionado uma configuração que especifica a pasta padrão da qual é rodada a aplicação, ajudando assim a se ter várias aplicações em um unico domínio.
Por padrão a aplicação rails pensa que está no / do dominio, gerando o seguinte erro caso não esteja.
Exemplificando ao acessar http://www.meuservidor.com.br/minha_aplicacao .
Routing Error
No route matches "/minha_aplicacao" with {:method=>:get}
Então para resolver isto é necessário apenas adicionar a linha abaixo ao envoriment.rb trocando o “/minha_aplicacao” pela pasta onde ela esta.
config.action_controller.relative_url_root="/minha_aplicacao"
Espero ter ajudado.
Publicado em Linux, Ruby, Ruby on Rails | Tagged No route matches, passenger, Rails, relative_url_root, Ruby, Ruby on Rails | Deixar um comentário »
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.
Publicado em Linux, Programação, Ruby, Ruby on Rails, Ubuntu | Tagged erro, Linux, mod_rails, passenger, Rails, Ruby, Ubuntu | 1 Comentário »