MacPorts

動向

2011-07-22

2011-07-27

2011-08-12

2017-05-24

セットアップ

since 2012-02-19

  • sudo port selfupdate をこまめに実行
  • sudo port outdated で更新可能なパッケージを検索
  • sudo port upgrade outdated でパッケージの更新
  • ログがここにある /opt/local/var/macports/logs/

macOS のバージョンアップ

macOS をメジャーバージョンアップした場合の MacPorts の再インストール手順

2015-12-31

2016-01-01

以下、過去のメモ

  • 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

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

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 に変わっていた。

macports.txt · 最終更新: 2017/05/24 10:15 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