Настройка Macbook'a для web-разработки на perl'e

Анастасия

Настройка Macbook'a для web-разработки на perl'e

 

Не на все ПО приведены ссылки, т.к. легко ищется в гугле. Это небольшой конспект по установке. Написан он после того, как все удачно поставилось, поэтому описаны только основные проблемы и их решения.

1. Начать надо с установки Xcode через AppStore. Для этого прийдется зарегистрироваться там в качестве разработчика.

Дальше надо запустить Xcode и в настройках Xcode / Preferences / Downloads / Components установить Command Line Tools. В него входят make и прочие необходимые штуки. 

2. Скачать XAMPP http://xampp.en.softonic.com/mac, установить

3. Дальше удобнее будет ставить ПО в терминале iTerm (качается бесплатно в интернете), чем в стандартном, т.к. в нем поддерживается мышка в midnight commander (mc). mc - это аналог far'a, total commander и прочих.

mc для mac'a можно скачать пакетом здесь: http://www.papasha.kiev.ua/2009/11/midnight-commander-for-mac-os-x.html. Встречаются варианты скомпилировать из исходников, но так проще. В дополнение к mc удобно пользоваться muCommander'ом  (тоже бесплатная программка) для ftp, samba и т.д.

Многие вещи удобно ставить через MacPorts из командной строки. 

4. Разные зависимости, которые требуются ImageMagick и GD:

sudo port install ghostscript
sudo port install freetype 
sudo port install png

и еще несколько… imagemagick сам расскажет при установке

Часть из низ не встали через port, пришлось компнилировать:

Install pkg-config (pkg-config Wiki – FrontPage)

curl -L http://pkgconfig.freedesktop.org/releases/pkg-config-0.25.tar.gz -o pkg-config-0.25.tar.gz
tar -xf pkg-config-0.25.tar.gz
cd pkg-config-0.25
./configure CC="gcc -arch i386 -arch x86_64" CXX="g++ -arch i386 -arch x86_64" CPP="gcc -E" CXXCPP="g++ -E"
make $PAR
sudo make install
cd -

Install gettext (gettext - GNU Project - Free Software Foundation (FSF))

curl -L http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.1.1.tar.gz -o gettext-0.18.1.1.tar.gz
tar -xf gettext-0.18.1.1.tar.gz
cd gettext-0.18.1.1
./configure CC="gcc -arch i386 -arch x86_64" CXX="g++ -arch i386 -arch x86_64" CPP="gcc -E" CXXCPP="g++ -E"
make $PAR
sudo make install
cd -

Install glib2 (ftp.gnome.org)

curl -L http://ftp.gnome.org/pub/gnome/sources/glib/2.27/glib-2.27.0.tar.bz2 -o glib-2.27.0.tar.bz2
tar -xf glib-2.27.0.tar.bz2
cd glib-2.27.0
./configure --with-libiconv=native
echo '--- glib-2.27.0-orig/glib/gconvert.c2010-09-17 17:33:50.000000000 -0500' > glib.patch
echo '+++ glib-2.27.0/glib/gconvert.c 2010-10-27 00:01:39.000000000 -0500' >> glib.patch
echo '@@ -61,9 +61,6 @@' >> glib.patch
echo ' #if defined(USE_LIBICONV_GNU) && !defined (_LIBICONV_H)' >> glib.patch 
echo ' #error GNU libiconv in use but included iconv.h not from libiconv' >> glib.patch
echo ' #endif' >> glib.patch
echo '-#if !defined(USE_LIBICONV_GNU) && defined (_LIBICONV_H)' >> glib.patch
echo '-#error GNU libiconv not in use but included iconv.h is from libiconv' >> glib.patch
echo '-#endif' >> glib.patch 
echo ' ' >> glib.patch
echo ' /**' >> glib.patch 
echo '  * SECTION:conversions' >> glib.patch 
patch -p1 < glib.patch 
make
sudo make install
make clean
./configure CC="gcc -arch i386" CXX="g++ -arch i386" CPP="gcc -E" CXXCPP="g++ -E" --with-libiconv=native
make $PAR
lipo -create gio/.libs/libgio-2.0.0.dylib /usr/local/lib/libgio-2.0.0.dylib -output libgio-2.0.0.dylib
lipo -create glib/.libs/libglib-2.0.0.dylib /usr/local/lib/libglib-2.0.0.dylib -output libglib-2.0.0.dylib
lipo -create gmodule/.libs/libgmodule-2.0.0.dylib /usr/local/lib/libgmodule-2.0.0.dylib -output libgmodule-2.0.0.dylib
lipo -create gobject/.libs/libgobject-2.0.0.dylib /usr/local/lib/libgobject-2.0.0.dylib -output libgobject-2.0.0.dylib
lipo -create gthread/.libs/libgthread-2.0.0.dylib /usr/local/lib/libgthread-2.0.0.dylib -output libgthread-2.0.0.dylib
sudo mv libgio-2.0.0.dylib /usr/local/lib/libgio-2.0.0.dylib
sudo mv libglib-2.0.0.dylib /usr/local/lib/libglib-2.0.0.dylib
sudo mv libgmodule-2.0.0.dylib /usr/local/lib/libgmodule-2.0.0.dylib
sudo mv libgobject-2.0.0.dylib /usr/local/lib/libgobject-2.0.0.dylib
sudo mv libgthread-2.0.0.dylib /usr/local/lib/libgthread-2.0.0.dylib
cd -

 

4. ImageMagick & PerlMagick

Важно скачать одинаковые версии, например, если ImageMagick-6.7.6-5.tar.gz, то PerlMagick должен быть 6.76.

ImageMagick рекомендуется ставить через macports:

sudo port install ImageMagick

Но у меня повылазили ошибки и пришлось поставить вручную. Для этого надо просто скопировать файлы из архива с исходниками в нужное место и настроить переменные:

export MAGICK_HOME="$HOME/ImageMagick-6.7.6"
export PATH="$MAGICK_HOME/bin:$PATH"
export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib/"

5. GD

sudo port install gd2
perl -MCPAN -e shell
install GD

6. mysql

Важно, чтобы mysql был 64-битным, в противном случае не поставиться DBD::mysql.

Пришлось скачать отдельный (от XAMPP) mysql. 

Запускается и выключается так:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop

Дальше настройки с http://makegood.ru/tools/mysql-and-phpmyadmin-on-mac/:

1) В /etc/my.cnf добавить:

[mysqld]
basedir=/usr/local/mysql

2) необходимо дать пользователю _mysql права на чтение и запись в папку /tmp:

sudo chown _mysql:staff /tmp

3) nano ~/.profile

Добавляем строку:

export PATH=/usr/local/mysql/bin:$PATH

4) выполнить

sudo chown -R root:wheel /Library/StartupItems/MySQLCOM
sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

все mysql должна заработать 

7. DBD::mysql

Скорее всего через CPAN DBD::mysql не поставиться. Вообще встречается много описаний разных проблем, возникающих при установке этого модуля на mac.

perl -MCPAN -e shell
install DBI
install Data-Dumper 
install Data-ShowTable

Во время установки dbd::mysql он запрашивает настройки сервера у mysql_config. Если эта штука не доступна, то надо добавить пусть к этому файлу в  PATH:

export PATH="$PATH:/usr/local/mysq/bin"

Дальше надо скачать с cpan.perl.org последнюю версию модуля dbd::mysql, разрахивироваться его и этой папке выполнить:

perl Makefile.PL --testuser=root

make

1) ошибка "make: *** [dbdimp.o] Error 2" надо удалить автозаменой все вхождения строки "-arch ppc" в файле Makefile. 

2) ошибка "Library not loaded: libmysqlclient" надо выполнить:

cd /usr/local/lib
sudo ln -s/usr/local/mysql/lib/*.dylib .

make install

должно работать

8. Установка отладчика

 

perl -MCPAN -e shell

install Tk

install Devel::ptkdb

Правда, так не поставилось, т.к. висли тесты у Tk. Пришлось скачать и поставить руками, мимо тестов. 

Далее потребуется некоторая настройка:

export PATH="$PATH:/usr/X11R6/bin"
export DISPLAY="127.0.0.1:0.0"

тоже самое можно написать и в скрипте:

BEGIN{

   $ENV{PATH}="...";
   $ENV{DISPLAY}="…";

}

Дальше надо запустить Программы/Утилиты/X11, в меню X11/Настройки/Безопасность убрать галочку "Проверять аутентификации подключений".

и в консоли

sudo xhost +

После этого должен запускаться отладчик:

#!/opt/local/bin/perl -d:ptkdb

...

 

9. Git

качается и без проблем ставиться готовый пакет с сайта разработчика

10. Настройка apache

По-умолчанию perl подключен как модуль апача, а это не удобно для разработки и отладки. Поэтому надо закомментировать в файле etc/extra/httpd-xampp.conf:

#LoadModule perl_module modules/mod_perl.so

В логах вылезала ошибка:

[emerg] (13)Permission denied: couldn't grab the accept mutex

Чтобы ее устранить, потребовалось дописать

AcceptMutex posixsem

 

11. eclipse - с ним все хорошо :)

 

Похожие записи

Вы можете оставить
комментарий



    
© 2002-2016 Креограф. Все права защищены законом РФ
 Русский /  English