目次
MacPorts
動向
2011-07-22
- Subversion 版は Lion で使えるという話。
2011-07-27
- MacPorts 2.0 は Lion 対応になった http://sourceforge.jp/magazine/11/07/26/052209
2011-08-12
- Fink や MacPorts の代替として Homebrew が注目されている http://mxcl.github.com/homebrew/
2017-05-24
- homebrew に移行しました
セットアップ
since 2012-02-19
- Xcode をインストールする。 System Tools and UNIX Development packages も入れる。
- Developer Program 無料の Register as an Apple Developer で入手できる Xcode でよい。
- System Tools が入っていないと sudo port したときに "Warning: xcodebuild exists but failed to execute"
- MacPorts 2.x を入れる。
- HowTo/UseMacPorts (MacPorts wiki jp)
-
- MacPorts-2.1.3-10.8-MountainLion.pkg
- sudo port selfupdate をこまめに実行
- sudo port outdated で更新可能なパッケージを検索
- sudo port upgrade outdated でパッケージの更新
- ログがここにある /opt/local/var/macports/logs/
macOS のバージョンアップ
macOS をメジャーバージョンアップした場合の MacPorts の再インストール手順
2015-12-31
- Mac OS をメジャーバージョンアップしたときは restore_ports.tcl を使って全てのパッケージを入れ直す
2016-01-01
-
- active でないものを削除:
- port installed|grep -v '(active)'|sed -e 1d|sudo xargs port uninstall
以下、過去のメモ
- Snow Leopard から Lion にアップデートしたあとは Xcode とコマンドラインツールを入れなおせばよい。。
- Lion から Mountain Lion にアップデートしたあとは Xcode をアップデートして、コマンドラインツールを入れなおす。
- コマンドラインツールを入れないと $ sudo port selfupdate が失敗する。
- Xcode 4.4 でコマンドラインツールを入れるときに Apple Develolper ID とパスワードをきかれる。
- Java Runtime は最初に Java アプリを実行するときにインストール画面が表示される。
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
Marvericks での記録
2014-06-16
https://trac.macports.org/ticket/30507
$ sudo port -d selfupdate
こういうメッセージが出る:
Warning: The Xcode Command Line Tools don't appear to be installed; most ports will likely fail to build. Warning: Install them by running `xcode-select --install'.
言われたとおりにする:
$ xcode-select --install
db46
mercurial も git も db46 のせいでうまく入れられないので調べた。
$ 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
PHP 5.5
2014-06-16
http://hiraro.hateblo.jp/entry/2013/08/25/024641
$ sudo port install php55 php55-apache2handler $ cd /opt/local/apache2/modules $ sudo /opt/local/apache2/bin/apxs -a -e -n php5 mod_php55.so
$ sudo /opt/local/apache2/bin/apxs -a -e -n php5 mod_php55.so Password: [activating module `php5' in /opt/local/apache2/conf/httpd.conf] $ sudo /opt/local/apache2/bin/apachectl restart [Mon Jun 16 18:59:45 2014] [warn] module php5_module is already loaded, skipping
/opt/local/apache2/conf/httpd.conf が下記のように重複している:
LoadModule php5_module modules/libphp5.so LoadModule php5_module modules/mod_php55.so
sudo 権限でエディタを開いて前の行を削る。
apachectl restart する。phpinfo() を見ると 5.5 になっている。
PHP 5.6
2014-10-12
$ sudo port selfupdate $ sudo port install php56 php56-apache2handler $ cd /opt/local/apache2/modules $ sudo /opt/local/apache2/bin/apxs -a -e -n php5 mod_php56.so $ sudo /opt/local/apache2/bin/apachectl restart
$ sudo port select php Available versions for php: none php55 php56 (active)
スタートアップで起動する
MacPortsでインストールしたものをスタートアップで起動する - YAMAGUCHI::weblog http://bit.ly/JNpogC
ということで launchctl load されているのだが apache2 起動に失敗することがある。。調査中。
ユーザーの Sites が見えない
since 2012-07-26
Mountain Lion にアップデートしたら見えなくなった。何の影響かわからないが。。
/opt/local/apache2/conf/httpd.conf
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory>
Deny from all を Allow from all に。(必要に応じて厳しく。。)
sudo /opt/local/apache2/bin/apachectl restart
mod_ssl エラー
since 2016-04-25
$ sudo /opt/local/apache2/bin/apachectl restart httpd: Syntax error on line 99 of /opt/local/apache2/conf/httpd.conf: Cannot load /opt/local/apache2/modules/mod_ssl.so into server: dlopen(/opt/local/apache2/modules/mod_ssl.so, 10): Symbol not found: _SSLv2_client_method\n Referenced from: /opt/local/apache2/modules/mod_ssl.so\n Expected in: /opt/local/lib/libssl.1.0.0.dylib\n in /opt/local/apache2/modules/mod_ssl.so
httpd.conf の 99 行をコメントアウトした。ローカルサーバーで SSL を使っていないのでこれでよしとする。
トラブルシューティング
Macでディスク容量が足りなくなってきたら1【portをcleanしよう】 - En blanc et noir http://bit.ly/UBkM3k
Helix Melody:MacPortsでupgradeができない時の対処法 - livedoor Blog(ブログ) http://bit.ly/Pl59eh
MySQL を止める
since 2017-01-17
アクティビティモニタを見ていたら無意味に高負荷だったので止めることにした。
$ sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql56-server.plist $ sudo port uninstall mysql56-server mysql56
いつの間にか mysql5 から mysql56 に変わっていた。