MacPorts

動向

2011-07-22

2011-07-27

2011-08-12

セットアップ

since 2012-02-19

InstallingMacPorts HowTo/UseMacPorts (MacPorts wiki jp)

  • sudo port selfupdate をこまめに実行
  • sudo port outdated で更新可能なパッケージを検索
  • sudo port upgrade outdated でパッケージの更新

Snow Leopard での記録

2010-11-12

snow leopard で Linux / BSD 系のソフトウェアをインストールするためのツールらしい。

試している環境 Mac OS X 10.6.5

$ uname -a
Darwin **** 10.5.0 Darwin Kernel Version 10.5.0: Fri Nov  5 23:20:39 PDT 2010; root:xnu-1504.9.17~1/RELEASE_I386 i386

$ gcc -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5659~1/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5659)

ちなみに java はこういう環境。

$ which javac
/usr/bin/javac
$ javac -version
javac 1.6.0_22

db46

mercurialgit も db46 のせいでうまく入れられないので調べた。

http://bit.ly/bdQSLK

$ sudo ln -s /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers
$ sudo port install db46

やっと成功。

うまくいかなかった手順

以下、うまくいかなかった手順。微妙に違う。

http://d.hatena.ne.jp/WaterFlea/20101103/1288766068

やってみる:

$ sudo ln -s /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Headers /System/Library/Frameworks/JavaVM.framework/Headers

うまくいかない:

Error: db46 requires the Java for Mac OS X development headers.
Error: Download the Java Developer Package from: <https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=20719>

gcc

since 2012-01-30

nltk をいじったついでに py27-scipy を入れたら gcc44 が入ってしまった。mp は mac ports の意味らしい:

$ which gcc-mp-4.4
/opt/local/bin/gcc-mp-4.4

$ gcc-mp-4.4 -v
Using built-in specs.
Target: x86_64-apple-darwin10
Configured with: ../gcc-4.4.6/configure --prefix=/opt/local --build=x86_64-apple-darwin10 --enable-languages=c,c++,objc,obj-c++,java,fortran --libdir=/opt/local/lib/gcc44 --includedir=/opt/local/include/gcc44 --infodir=/opt/local/share/info --mandir=/opt/local/share/man --with-local-prefix=/opt/local --with-system-zlib --disable-nls --program-suffix=-mp-4.4 --with-gxx-include-dir=/opt/local/include/gcc44/c++/ --with-gmp=/opt/local --with-mpfr=/opt/local --enable-stage1-checking --disable-multilib --enable-fully-dynamic-string
Thread model: posix
gcc version 4.4.6 (GCC) 

自分でバージョンを指定して入れるのはこんな感じでよいらしい:

$ sudo port install gcc46
$ sudo port install gcc47
$ which gcc-mp-4.6
/opt/local/bin/gcc-mp-4.6
$ which gcc-mp-4.7
/opt/local/bin/gcc-mp-4.7

Apache/PHP/MySQL

since 2012-02-07

Snow Leopard の Web 共有から移行してみる。

パーフェクトPHP にもさらっと書いているし、あちこちに書かれているけど。。

資料 Apache + MySQL + PHP + phpMyadmin の環境構築

システム環境設定「共有」の Web共有 を切る。同じくシステム環境設定の MySQL を止める。

sudo port selfupdate
sudo port upgrade outdated
sudo port install apache2
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
sudo cp /opt/local/apache2/conf/httpd.conf /opt/local/apache2/conf/httpd.conf.orig

これで http : / / localhost / が it works になる

sudo port install php5 +apache2 +mysql5 +sqlite +pear
sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini
sudo emacs -nw /opt/local/apache2/conf/httpd.conf
# 追記
PHPIniDir "/opt/local/etc/php5"
# 拡張子設定 IfModule に追記
AddType application/x-httpd-php .php
cd /opt/local/apache2/modules/
sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so 
# 確認
grep libphp5 /opt/local/apache2/conf/httpd.conf
# 出力 LoadModule php5_module        modules/libphp5.so

下記のように空白を1個に減らした(何かのエラーを回避できた気がするが詳細不明):

LoadModule php5_module modules/libphp5.so
sudo /opt/local/apache2/bin/apachectl restart

エラーログの場所 /opt/local/apache2/logs/error_log

PHP の timezone 設定しておく:

$ sudo emacs -nw /opt/local/etc/php5/php.ini
date.timezone = 'Asia/Tokyo'

続いて mysql5 を入れる。/usr/local/mysql/bin/mysql がすでに入っているので注意しつつ:

sudo port install mysql5
sudo port install mysql5-server
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
sudo -u mysql /opt/local/bin/mysql_install_db5

出てくるメッセージの一部:

セキュリティ対応:
/opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password'
/opt/local/lib/mysql5/bin/mysqladmin -u root -h pc-nishi2011a-2.local password 'new-password'
または
/opt/local/lib/mysql5/bin/mysql_secure_installation

デーモン起動:
cd /opt/local ; /opt/local/lib/mysql5/bin/mysqld_safe &

デーモンの確認:
cd /opt/local/mysql-test ; perl mysql-test-run.pl

php と mysql の連携設定。

sudo port install php5-mysql

出てくるメッセージ抜粋:

To use mysqlnd with a local MySQL server, 
edit 
/opt/local/etc/php5/php.ini 
and set
mysql.default_socket, 
mysqli.default_socket and 
pdo_mysql.default_socket
to 
/opt/local/var/run/mysql5/mysqld.sock

これに従って php.ini を修正(やらない方が良かった。後述)

続いて phpmyadmin を入れる。依存パッケージをまとめて導入:

sudo port install phpmyadmin

httpd.conf

  • DocumentRoot を "/opt/local/www" にする。
  • DirectoryIndex index.html index.php にする。

/opt/local/www/phpmyadmin/config.inc.php

  • ….['AllowNoPassword'] = TRUE; にする。

mysql デーモンを動かす:

sudo /opt/local/lib/mysql5/bin/mysqld_safe &

これで http : / / localhost/phpmyadmin/ を使えると思ったが、root でログインできない。。

もしや sock ファイルの場所が合ってないのではという話

$ mysql5 -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.61-log Source distribution

(omitted)

mysql> status
--------------
mysql5  Ver 14.14 Distrib 5.1.61, for apple-darwin10.8.0 (i386) using readline 6.2

(omitted)

UNIX socket:		/tmp/mysql.sock
Uptime:			8 min 14 sec

Threads: 1  Questions: 6  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per second avg: 0.12

ソケットファイルの指定3箇所を修正して、apache 再起動:

sudo emacs -nw /opt/local/etc/php5/php.ini
sudo /opt/local/apache2/bin/apachectl restart

これで mysqladmin に root でログインできた。

コマンドラインから実行できる PHP は /opt/local/bin/php -a である。

$ which php
/opt/local/bin/php
$ which pear
/opt/local/bin/pear

Xdebug も入れておく:

sudo port install php5-xdebug
sudo /opt/local/apache2/bin/apachectl restart

スタートアップで起動する

MacPortsでインストールしたものをスタートアップで起動する - YAMAGUCHI::weblog http://bit.ly/JNpogC

ということで launchctl load されているのだが apache2 起動に失敗することがある。。調査中。

macports.txt · 最終更新: 2012/05/08 10:35 by Takuya Nishimoto
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0