#bancoDeDados, #configuração

Como solucionar o erro de domain socket no PostgreSQL


Olá pessoal.

Novamente ao instalar o PostgreSQL eu me esbarrei com o erro:

Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Este é um erro conhecido e frequente, já tive ao instalar o PostgreSQL no Mac OS e agora tive ao instalar no Ubuntu em uma instância na Amazon AWS. O erro acontece ao tentar conectar no banco de dados, via psql ou pelo comandos do PostgreSQL (ex.: createuser).

Após várias pesquisas e testes cheguei à solução que compartilho aqui.

Por algum motivo que desconheço o PostgreSQL não define nenhum valor para a variável unix_socket_directory, mas de alguma forma a criação da conexão fica procurando pela pasta /var/run/postgresql.

A primeira coisa a ser feita é definir um local para unix_socket_directory, e este local não pode ser dentro da pasta /var/run/postgresql porque até onde vi o conteúdo desta pasta não é persistente e o erro volta a acontecer após um reboot.

Então no arquivo /usr/local/pgsql/data/postgresql.conf defina um valor para a variável unix_socket_directory:

unix_socket_directory = '/tmp/postgresql'

Agora é preciso criar a pasta que será utilizada pelo socket:

sudo mkdir /tmp/postgresql

E definir as permissões para o usuário postgres e para o grupo de usuários denominado ubuntu:

sudo chown -R postgres /tmp/postgresql
sudo chgrp -R ubuntu /tmp/postgresql

Também é preciso criar o diretório de dados:

sudo mkdir -p /usr/local/pgsql/data

E definir as permissões:

sudo chown -R postgres:postgres /usr/local/pgsql/

Feito isso iremos alterar o acesso para o usuário postgres:

sudo su - postgres

Acesse o diretório dos executáveis:

cd /usr/lib/postgresql/9.1/bin/

Inicialize a área de dados:

./initdb -D /usr/local/pgsql/data

Inicie o servidor PostgresSQL:

./postgres -D /usr/local/pgsql/data

Eu também alterei o conteúdo do script de inicialização do PostgreSQL para passar as novas configurações. E o meu arquivo /etc/init.d/postgresql ficou assim:

#!/bin/sh -e
PGVER='9.1'
BINPATH="/usr/lib/postgresql/$PGVER/bin/"
PGUSER='postgres'
PGLOG='/tmp/postgresql/pgsql.log'
PGDIR='/usr/local/pgsql/data'

start(){
   cd $BINPATH
   su $PGUSER -c "./pg_ctl -D $PGDIR -l $PGLOG start"
}

stop(){
   cd $BINPATH
   su $PGUSER -c "./pg_ctl -D $PGDIR -l $PGLOG stop"
}

case "$1" in
   start)
      start
      ;;
   stop)
      stop
      ;;
   restart)
      stop
      start
      ;;
   *)
      echo "Usage: $0 {start|stop|restart}"
      exit 1
      ;;
esac

exit 0

Agora é possível iniciar, parar e reiniciar o PostgreSQL com os comandos:

sudo /etc/init.d/postgresql start
sudo /etc/init.d/postgresql stop
sudo /etc/init.d/postgresql restart

E acessar a interface do PostgreSQL com o comando:

sudo su - postgres
psql

That’s all folks!!!

Até breve 😉

Referências:

http://goo.gl/HQC3j

http://goo.gl/UZRGT

http://goo.gl/j4eTP

Padrão
#desenvolvimento

Instalando Project Fedena com RVM


Olá pessoal.

Conforme havia informado no post anterior sobre a instalação do Fedena, a melhor opção é instalar utilizando o RVM. Executei a instalação no Ubuntu Server 12.10 e irei compartilhar aqui 😉

Para começar atualize seu sistema operacional:

sudo apt-get update

Instale algumas dependências para facilitar:

sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion nodejs

Instale o RVM:

curl -L https://get.rvm.io | bash -s stable --ruby

Após instalar o RVM é necessário atualizar o profile para que o comandodo RVM  fique disponível:

. ~/.profile

Com o RVM pronto para ser utilizado, vamos instalar a versão 1.8.7 do Ruby requerida pelo Fedena. Quando tentei instalar esta versão do Ruby tive problemas com algumas keys, por isso é importante informar o parâmetro “–verify-downloads 1” para que não faça verificações das chaves ao instalar.

rvm install 1.8.7 --verify-downloads 1

Defina a versão 1.8.7 como versão padrão:

rvm --default use 1.8.7

Crie um gemset para o Rails 2.3.5 exigido pelo Project Fedena:

rvm gemset create rails2.3.5

Selecione a gemset criada anteriormente para ser utilizada:

rvm gemset use rails2.3.5

Instale a versão 2.3.5 do Rails:

gem install rails -v 2.3.5

Verifique se o Rails foi instalado corretamente:

rails -v

Baixe o pacote do Fedena:

wget http://projectfedena.org/download/fedena-bundle-linux

Instale o Unzip para extrair o conteúdo do pacote:

sudo apt-get install unzip

Extraia o conteúdo do pacote:

unzip fedena-bundle-linux

Entre na pasta do Fedena:

cd fedena-v2.3-bundle-linux/

Ao executar o bundle ocorreu erro de dependências do MySQL, por isso antes de executar o bundle instale as dependências:

sudo apt-get install libmysqlclient18 libmysqlclient-dev

Execute o bundle para instalar as gems utilizadas no projeto:

bundle install --local

Edite o arquivo config/database.yml informando o seu usuário e senha do banco de dados.

Edite também o arquivo Rakefile incluindo mais um requisito para o Rake:

# Insira a linha abaixo antes de require 'rake'.
require 'thread'
require 'rake'

Crie os bancos de dados para o projeto:

rake db:create:all --trace

Instale a versão 1.3.7 do Rubygems:

rvm rubygems 1.3.7

Instale os plugins do Fedena:

rake fedena:plugins:install_all --trace

Inicie o servidor:

script/server

E pronto! Pelo browser acesse a página inicial do Fedena:

http://localhost:3000

Para logar utilize as credenciais:

Username: admin

Password: admin123

Compartilho o link de alguns posts que me ajudaram a instalar o RVM no Ubuntu:

https://github.com/danielvlopes/ruby-unix/blob/master/pt/ubuntu_12_04.md

http://www.compilando.org/wp/programacao/como-instalar-o-rvm-no-ubuntu-11-04-natty

http://gregoriomelo.com/2011/rvm-desenvolvimento-responsavel-em-ruby-e-rails/

Até breve 😉

Padrão
#configuração

Instalando o Project Fedena no Ubuntu Server


Olá pessoas.

Há algum tempo descobrir o Fedena, um projeto desenvolvido com Ruby on Rails, que apresenta uma proposta muito interessante para gerência de escolas. Descobrir também que eles possuem uma versão Free & Opensource mais conhecido como Project Fedena.

Por curiosidade quis instalar a versão opensource no Ubuntu Server 11.10. Ao tentar instalar de acordo com as instruções do site obtive muitos erros, então resolvi compartilhar um passo-a-passo da instalação aqui no blog. Mãos a obra:

Instale o Ruby e suas dependências:

apt-get install ruby irb libopenssl-ruby libreadline-ruby rdoc ri ruby ruby-dev rubygems

Instale o MySQL:

apt-get install libmysqlclient-dev mysql-server

Instale o unzip:

apt-get install unzip

Instale a gem do Rails:

gem install Rails

Instale a gem do MySQL:

gem install mysql

Baixe o projeto do Fedena:

wget http://www.projectfedena.org/download/fedena-bundle-linux

Extraia o projeto:

unzip fedena-bundle-linux

Entre na pasta do projeto:

cd fedena2.2_bundle_pack/

Instale as dependências do projeto:

bundle install –local

Troque as senhas do banco de dados contidas no arquivo de configuração do banco de dados config/database.yml:

development:
host: localhost
adapter: mysql
database: fedena_ultimate
port: 3306
username: root
password: SUASENHA

Crie o banco de dados:

rake db:create

Então o primeiro erro acontece:

rake aborted!
You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.8.7. Using bundle exec may solve this.

Uma forma de solucionar este erro é removendo todas as versões do rake:

gem uninstall rake

Se você possuir mais de uma versão será apresentada uma lista com todas as versões, escolha a opção que representar todas as versões.

Instale a versão do rake solicitada para o projeto Fedena:

gem install rake -v=’0.8.7′

Tente criar o banco de dados novamente:

rake db:create

E lá vem o segundo erro:

rake aborted!
uninitialized constant ActiveSupport::Dependencies::Mutex

Para solucionar este erro abra o arquivo Rakefile e acrescente a linha abaixo antes da linha que contém require ‘rake’:

require ‘thread’

Tente criar o banco de dados mais uma vez:

rake db:create

Então você deve receber esta mensagem de sucesso:

** Invoke db:create (first_time)
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
** Execute db:create

Povoe as tabelas executando o comando:

rake db:migrate

E mais um erro acontece:

rake aborted!
undefined local variable or method `version_requirements’ for #<Rails::GemDependency:0x7f595afa7e30>

Para resolver este erro desinstale todas as versões do rubygems-update:

gem uninstall rubygems-update

Instale a versão 1.4.2 do rubygems-update:

gem install rubygems-update -v=’1.4.2′

Tente atualizar suas gems:

update_rubygems

Verifique se suas gems continuam instaladas:

gem list

No meu caso todas as gems foram removidas, então tive que instalar o Rails novamente:

gem install rails

Tente novamente povoar as tabelas:

rake db:migrate

É provável que receba este erro:

rake aborted!
Bundler couldn’t find some gems.Did you run `bundle install`?

Se receber este erro execute o comando:

bundle install

Remova novamente a versão 0.9.2.2 do rake:

gem uninstall rake -v=’0.9.2.2′

Agora é possível povoar as tabelas:

rake db:migrate

Por fim inicie o servidor:

bundle exec script/server

Pelo browser acesse a página inicial do Fedena:

http://localhost:3000

Para logar utilize as credenciais:

Username: admin

Password: admin123

Enjoy 😉

Acredito que estes problemas possam ser evitados com a utilização do RVM, mas isto é assunto para outro post.

Até breve.

Padrão
#configuração, #desenvolvimento

Instalando Spree no Ubuntu Server


Olá pessoal.
Este post será uma breve ajuda para instalação do Spree que é uma loja virtual opensource desenvolvida em Ruby on Rails.
Os detalhes do projeto podem ser vistos aqui no GitHub. A instalação está bem detalhada mas há uma grande chance de não funcionar de primeira por causa da versão do Rails, como foi o meu caso.
Ao tentar instalar recebi esta mensagem de erro:

ERROR: While executing gem … (Gem::DependencyError)
Unable to resolve dependencies: activerecord requires activesupport (= 3.1.4), activemodel (= 3.1.4); actionmailer requires actionpack (= 3.1.4); activeresource requires activesupport (= 3.1.4), activemodel (= 3.1.4); railties requires activesupport (= 3.1.4), actionpack (= 3.1.4)

E para resolver removi a versão atual do Rails:

gem uninstall rails

Instalei a versão 3.1.4 do Rails:

gem install rails -v 3.1.4

Neste momento tentei instalar novamente o Spree, mas recebi um novo erro:

ERROR: Error installing spree:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.8 extconf.rb
checking for libxml/parser.h… no
libxml2 is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.

Para solucioná-lo instalei as libs:

apt-get install libxml2 libxml2-dev libxslt1-dev

Enfim instalei o Spree:

gem install spree

Criei o projeto rails:

rails new store

Associei o projeto Rails ao projeto Spree:

spree install store

Neste momento será necessário responder a algumas perguntas:

Would you like to install the default gateways? (yes/no) [yes] yes
Would you like to run the migrations? (yes/no) [yes] yes
Would you like to load the seed data? (yes/no) [yes] yes
Would you like to load the sample data? (yes/no) [yes] yes
Admin Email [spree@example.com] seu_email@email.com
Admin Password [spree123] sua_senha

Entrei na pasta do projeto:

cd store

Iniciei o servidor WEBrick:

rails s

E pronto!!! Agora é só acessar o endereço http://localhost:3000 no seu navegador e você já pode logar com o e-mail e senha cadastrados na hora da criação do projeto Spree.
Espero que seja útil.

Até breve 😉

Padrão
#configuração

Projeto RoR nas nuvens – Parte 4


Olá pessoal!
Como prometido no post anterior iremos configurar o Heroku para realizar o deploy de um projeto feito em RoR.

Primeiro é necessário realizar o cadastro no site heroku.com que é bem simples e rápido. Feito isso vamos instalar a gem do Heroku com o comando:


$ sudo gem install heroku

Para utilizar o Heroku será preciso instalar alguns pacotes no Ubuntu:


$ sudo apt-get install libopenssl-dev openssl libssl-dev

Após instalar os pacotes precisamos compilar e instalar o openssl do Ruby. Acesse o diretório onde o ruby foi descompactado e troque o usuário para root.


$ cd /opt/ruby-1.9.2-p180/ext/openssl/
$ ruby extconf.rb
$ make
$ make install

Apesar de instalar o openssl ainda tive problemas com o readline e para solucionar instalei as libs:

$ sudo apt-get install libncurses5-dev libreadline5-dev

E como de costume precisamos logar como root para compilar e instalar o readline interno do Ruby.

$ cd /opt/ruby-1.9.2-p180/ext/readline/
$ ruby extconf.rb
$ make
$ make install

Com tudo instalado precisamos adicionar uma chave pública para realizar o envio dos arquivos.

$ heroku keys:add
Uploading ssh public key /home/seuusuario/.ssh/id_rsa.pub
Enter your Heroku credentials.
Email: emailcadastradonoheroku@email.com
Password: senhaCadastradaNoHeroku
Uploading ssh public key /home/seuusuario/.ssh/id_rsa.pub

Acesse a pasta da sua aplicação Rails criada na segunda parte da série. E vamos configurar o Git.

$ git init
$ git add .
$ git commit -m "Aplicacao de teste."

É hora de criar a aplicação Heroku:

$ heroku create

E por fim vamos adicionar nossa aplicação ao Heroku:

$ git push heroku master
...
Are you sure you want to continue connecting (yes/no)? yes
...
-----> Launching... done
http://algumacoisa.heroku.com deployed to Heroku

Pronto!!!
Para testar se o deploy da sua aplicação aconteceu corretamente, você deverá acessar o link fornecido no final do push: http://algumacoisa.heroku.com
Se você for redirecionado para a página “Ruby on Rails: Welcome aboard” significa que o deploy foi realizado com sucesso. Caso contrário coloque nos comentários os erros encontrados.
Você pode alterar o link para sua aplicação através da área destinada ao gerenciamento das aplicações. Basta logar no site do Heroku e acessar https://api.heroku.com/myapps
Com isto finalizamos a série “RoR nas nuvens”, com o ambiente pronto para desenvolvermos uma aplicação “de verdade”.
Isso é tudo pessoal.
Até breve 😉

Padrão
#configuração

Projeto RoR nas nuvens – Parte 3


Olá pessoal.

No post anterior configuramos o ambiente para o desenvolvimento de aplicação RoR. Neste post iremos configurar o Git e o Github.

No terminal instale o Git e seus auxiliares:


$ sudo apt-get install git-core git-gui git-doc

Com o Git instalado é necessário configurar o Github, para isso realize seu cadastro no site www.github.com e aproveite para me seguir, é só procurar por monteirobrena 😉

Após criar sua conta será preciso criar uma chave pública para adicioná-la no Github.

Antes de criar a chave pública verifique se a pasta .ssh já existe no seu /home, senão existir crie com o comando:


$ cd ~
$ mkdir .ssh

Entre na sua pasta .ssh:


$ cd ~/.ssh

Crie a chave pública:

$ ssh-keygen -t rsa -C "emailcadastradonogithub@email.com"

Irá aparecer a mensagem:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/nomedoseuusuario/.ssh/id_rsa):
Pressione apenas ENTER.

Após pressionar ENTER irá aparecer as seguintes mensagens

Enter passphrase (empty for no passphrase): palavrachave

(Onde palavrachave será uma palavra utilizada para utilizar sua chave pública.)

Será solicitada a repetição da palavrachave para confirmar.

Enter same passphrase again: palavrachave

(Onde palavrachave é a mesma palavra informada anteriormente.)

A próxima etapa é adicionar a chave pública ao Github. Acesse seu Github e sigla o fluxo: “Account Settings” > Click “SSH Public Keys” > Click “Add another public key”

Abra o arquivo ~/.ssh/id_rsa.pub e copie TODO o seu conteúdo. Volte para a página do Github e cole o conteúdo copiado no campo “Key”, em seguida clique em “Add key”.

Chave pública adicionada. Vamos testar.

No terminal:


$ ssh git@github.com

Aparecerá uma mensagem semelhante à:

The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.Are you sure you want to continue connecting (yes/no)?

Digite “yes”.

Agora será solicitado que você informe a palavrachave usada na criação da chave pública. Essa solicitação pode aparecer no terminal ou em uma janela auxiliar. Seja qual for a maneira que aparecer informe a palavrachave e confirme.

Então, no terminal, deverá aprecer uma mensagem semelhante a esta:

Warning: Permanently added ‘github.com,207.97.227.239’ (RSA) to the list of known hosts.PTY allocation request failed on channel 0Hi seuusuariocadastradonogithub! You’ve successfully authenticated, but GitHub does not provide shell access. Connection to github.com closed.

Quase lá!

Agora iremos setar as informações pessoais no Github.

No terminal informe seu nome e seu e-mail:

$ git config --global user.name "Nome Sobrenome"
$ git config --global user.email "emailcadastradonogithub@email.com"

Agora falta informarmos o nome do usuário e o token fornecido pelo Github:

$ git config --global github.user nomedousuariocadastradonogithub
$ git config --global github.token tokencopiadodogithub

O tokencopiadodogithub pode ser encontrado no caminho “Account Settings” > Click “Account Admin.”

API Token
Your API token is xxxxyyyyzzzzwwwwxxxxyyyyzzzzwwww …

E como o último passo vamos criar um repositório. Para isto acesse seu “Dashboard” no Github e clique no botão “New Repository”. Digite as informações solicitadas e clique em “Create Repository”.

Volte ao terminal para criar o repositório na sua máquina:

$ mkdir ~/app
$ cd ~/app
$ git init
$ touch README

Faça o commit inicial:

$ git add README
$ git commit -m 'Primeiro commit.'

Agora falta apenas adicionar a origem e enviar o commit pro Github.

$ git remote add origin git@github.com:seuusuariocadastradonogithub/app.git
$ git push origin master

Pronto! Repositório criado e configurado no Github.
No próximo post iremos ver como realizar o deploy de uma aplicação RoR no Heroku.
Até lá 😉

Padrão
#configuração

Projeto RoR nas nuvens – Parte 2


Olá pessoal.

No post anterior fiz uma breve introdução sobre o projeto que estou desenvolvendo. E como prometido iremos instalar e configurar o ambiente para desenvolver a aplicação RoR.

Para começar baixe o Ruby 1.9.2 aqui, copie para o diretório /opt e extraia os arquivos:

$ sudo tar -xvf ruby-1.9.2-p180.tar.gz

Entre na pasta do Ruby:

$ cd ruby-1.9.2-p180

Configure e instale:

$ sudo ./configure
$ sudo make
$ sudo make install

Pronto! Ruby instalado vamos pro próximo.

Agora é preciso instalar o zlib. Para isso baixe este arquivo, copie para opt e extraia:

$ sudo tar -xvf zlib-1.2.5.tar.gz

Entre na pasta do zlib:

$ cd zlib-1.2.5

Em meus testes não consegui instalar o zlib utilizando sudo, então para instalar foi necessário fazê-lo como root.


$ ./configure; make test $ make install

Agora vamos instalar o zlib que veio junto com o Ruby. Entre na pasta do zlib:

$ cd ruby-1.9.2-p180/ext/zlib

Instale o zlib:

$ ruby extconf.rb
$ make && make install

Feito isso vamos para a instalação do Rails.

$ sudo gem install rails

Para testar crie uma aplicação Rails com o comando:

$ rails new app

Algo semelhante deverá ser exibido no terminal:

create
create  README
create  Rakefile
...

Ainda falta instalar o sqlite3

$ sudo apt-get install libsqlite3-dev

$ sudo gem install sqlite3

Para testar acesse o diretório onde sua aplicação Rails foi criada e inicie o servidor WEBrick

$ rails s

Acesse http://localhost:3000

Se aparecer a página “Ruby on Rails: Welcome aboard” significa que agora seu Ubuntu está pronto para que você possa desenvolver aplicações RoR, senão poste os problemas ai para tentarmos resolver.

No próximo post iremos configurar o Git e o Github.

Até lá 😉

Padrão