Marcos Sousa’s Blog

Blog sobre desenvolvimento de software
  • rss
  • Home
  • Sobre

Como instalar o Macports no Mac Snow Leopard

Marcos Sousa | January 14, 2010

Recentemente fui tentar instalar o pyccuccy para testá-lo, mas a instalação será tema para outro post. Até o momento ainda não tinha usado o GIT por linha de comando, apenas pelo plugin do eclipse no Mac (Está bem, os projetos em Java mesmo). Só que instalar o Macports no Snow Leopard me gerou um certo stress, ao acessar o site me deparei que o Macports 1.7.0 não tem suporte para o Snow Leopard. Porém fui até o código fonte do projeto e notei que os fontes já suportam a versão 10.6.2. Com base nisto criei o seguinte script para instalar o macports a partir do código fonte (deve ser executado como sudo):

1
2
3
4
5
6
7
8
9
#!/usr/bin/env bashcd /tmp
svn co http://svn.macports.org/repository/macports/trunk/base/
cd base
./configure
make
sudo make install
cd ..
sudo rm -r base
sudo port -v selfupdate

O código é bem simples, porém funcionou sem problemas e já o usei umas 2 vezes. Fica a dica para quem precisar. E fica a dica ainda maior para salvar o código como um executável para não ter que ficar digitando comandos todas as vezes, ou seja, Dont Repeat Yourself (DRY).

Comments
No Comments »
Categories
DRY, Mac OS
Tags
DRY, Mac, shell script, Snow leopard
Comments rss Comments rss
Trackback Trackback

Instalar o driver Mysql para Python no Mac Snow Leopard

Marcos Sousa | January 2, 2010

Já tem algum certo tempo que gostaria de compartilhar esta experiência. Durante os tempos vagos, estou buscando além de ler livros, estou também buscando conhecer novas linguagens. Sempre que posso estou dedicando um certo tempo para aprender algo a mais em Ruby e Python. Como desenvolvi na grande maioria dos casos para web, escolhi o Ruby on Rails e Django como o foco inicial dos estudos.

O meu primeiro problema encontrado com Python foi quando eu pensei em persistir os dados no Mysql. É uma tarefa relativamente simples, porém devido a versão incorreta do Mysql para a versão do sistema operacional, colocar o driver no “classpath” do python me rendeu uma certa dor de cabeça. Usando o Mac OS X 10.6, também conhecido como Snow Leopard, eu tinha o Mysql a versão x86 instalada. O correto é ter a versão x86_x64.

Como um bom desenvolvedor preguiçoso, resolvi criar um script shell para não ter problemas ao ter que reinstalar o driver em novas ocasiões. Seguindo as recomendações iniciais do site oficial do driver a primeira versão do script foi algo semelhante, ao script abaixo:

1
2
3
4
5
6
7
#!/usr/bin/env bash

curl -o MySQL-python-1.2.3c1.tar.gz http://ufpr.dl.sourceforge.net/project/mysql-python/mysql-python-test/1.2.3c1/MySQL-python-1.2.3c1.tar.gz
tar -vzxf MySQL-python-1.2.3c1.tar.gz
cd MySQL-python-1.2.3c1
python setup.py build
python setup.py install

É importante lembrar que é preciso ter o gcc para executar o script acima. Para isto basta instalar o XCode disponível como pacote opcional no DVD de instalação do mac, ou baixado através da página de download oficial. Executando a instrução abaixo para certificar que a instalação foi bem sucedida

1
>>> import MySQLdb

Me deparei com o seguinte erro:

1
2
3
4
5
6
7
8
import sys, pkg_resources, imp
Traceback (most recent call last):
File “”, line 1, in
File “MySQLdb/__init__.py”, line 19, in
import _mysql
File “build/bdist.macosx-10.5-x86/egg/_mysql.py”, line 7, in
File “build/bdist.macosx-10.5-x86/egg/_mysql.py”, line 6, in __bootstrap__
ImportError: dynamic module does not define init function (init_mysql)

Após olhar atentamente a documentação do driver, listas de discussões e blogs notei que a versão do Mysql era origem do problema. Diante disso, criei um script para desinstalar o mysql:

1
2
3
4
5
6
7
8
9
#!/usr/bin/env bash
/Library/StartupItems/MySQLCOM/MySQLCOM stop
rm /usr/local/mysql
rm -rf /usr/local/mysql*
rm -rf /Library/StartupItems/MySQLCOM
rm -rf /Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
# Editar o arquivo /etc/hostconfig e remover a linha MYSQLCOM=-YES-

Feito isto, instalei novamente o Mysql na versão 5.5 x86_x64. Depois disso, apenas para certificar que estava executando o script correto, adicionei uma flag dizendo a versão para qual o driver era destinado. As duas últimas linhas do primeiro script foram substituídas por estas:

1
2
ARCHFLAGS='-arch x86_64' python setup.py build
ARCHFLAGS='-arch x86_64' python setup.py install

Nota: apenas desinstalar o mysql que requer a execução como super usuário.

Fica a dica para que possa ajudar alguém que esteja iniciando e que encontre o mesmo problema. ;)

Comments
3 Comments »
Categories
Django, Python
Tags
Django, driver, mysql, Python, python-mysql-driver
Comments rss Comments rss
Trackback Trackback

Núvens de tags

Agile Eventos Facelets GET Hibernate incompatiblidades Itext Java Java EE Java Magazine Java Server Faces JavaServer Faces Java Vídeo Magazine Jboss jboss-seam-itext Jboss Developer Studio Jboss Seam JDBC type: 7 JPA JSF linux mare marébh maré de agilidade Microsoft No Dialect mapping for JDBC type: 7 Page Actions PostGreSQL RHDS rich:fileUpload RichFaces Rich Faces RichFaces 3.2 Scrum Seam-gen Seam Framework Seam PDF Spring Spring Framework TDD URL Rewrite URL User Friendly Variable Resolver Vídeo Aula XP

Meus últimos tweets

  • Aos participantes do Bhjs que gostariam de vir para a Globo.com, segue as outras vagas http://t.co/KjBinf4x #bhjs #beagajs 1 week ago
  • Se você precisa buscar dado no disco, prefira assíncrona @luciano #bhjs #beagajs http://t.co/5gCHp7P8 2 weeks ago
  • @DouglasAguiar @HerberthAmaral Porque na copa? 2 weeks ago
  • Slides da palestra 'Indo além com jQuery' #bhjs #beagajs http://t.co/wHbhaI75 2 weeks ago
  • @araujolucas na parte da frente a temperatura está melhor 2 weeks ago
  • Começando a palestra do @cmilfont no #bhjs #beagajs http://t.co/9DZt7MQj 2 weeks ago
  • @isaias_barroso @DeivissonBruno @cmilfont gula ao extremo:) 2 weeks ago
  • Palestra com insights do desenvolvimento do paparazzo #gcom #bhjs #beagajs http://t.co/7igVbtmS 2 weeks ago
  • @flavio1110 energético? 2 weeks ago
  • Alguém indo do Aeroporto de Confins para centro/guitierrez por voltar de 12:00 #bhjs #beagajs 2 weeks ago

Anúcios

Categorias

  • .net
  • Agile
  • Agile Conference 2009
  • Artigos
  • Atualidades
  • c++
  • cinema
  • Django
  • DRY
  • Eventos
  • Flex
  • Formula 1
  • Hibernate
  • IDE
  • Inutilidades
  • Java
  • Java EE
  • Java Server Faces
  • Jboss Seam
  • linux
  • Mac OS
  • Microsoft
  • Open-source
  • Palestras
  • Python
  • RAD
  • RIA
  • RichFaces
  • Scrum
  • Software Livre
  • Spring
  • Spring Annotations
  • TDD
  • Testes
  • Uncategorized
  • Vídeo Aulas

Links recomendados

  • AJ Soluções
  • Ary Júnior
  • Erko Bridee
  • Fragmental
  • Fragmental TW
  • Guilherme Chapiewski
  • Handerson Frota
  • Jeveaux
  • Juliano Carniel
  • Onipresente
  • Passes de Letra
  • PortalJava.com
  • Rafael Carneiro
  • Rafael Pontes

DevMedia Post’s

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox