MacPorts削除の前準備
MacPorts削除する前にDBのダンプやデーモンの停止をしておきます。最初にDBのダンプをとります。
# /opt/local/lib/postgresql/bin/pg_dumpall > /tmp/pgsql.dump # /opt/local/bin/mysqldump5 -u root -x --all-databases > /tmp/mysql.dump #
次にMacPortsでインストールしたデーモンのプロセスを停止させます。
# port unload apache2 # port unload postgresql90-server # port unload mysql5-server #
インストール時期がかなり前だと、どのデーモンをMacPortsでインストールしたか忘れてしまうこともあります。そんな時は、launchctl コマンドを使えば、 現在動いているデーモンからMacPortsでインストールしたものを抽出できます。
# launchctl list | grep macports 60083 - org.macports.postgresql90-server 59969 - org.macports.mysql5 59934 - org.macports.apache2 #
MacPortsを削除とインストール etc..
元記事と大体一緒なので簡単に..
一応最初に "port installed > /tmp/install.txt"として、現在インストールされているport一覧を取っておきます。
# port installed > /tmp/install.txt # port deactivate active # port -f uninstall installed # port clean all # sudo mv /opt/local /opt/local.old #
macportをインストールして、最新版に更新。
# port selfupdate # port upgrade outdated #
macports.confの編集
最新版に更新後、/opt/local/etc/macports/macports.conf を編集してportarchivemodeをyesにします。これによって、コンパイル時にパッケージ アーカイブファイルが/opt/local/var/macports/packagesに作られます。またインストールする際にパッケージがあれば、再コンパイルせずにそのパッケージが使われるので、時間と電力の節約になります。
# vi macports.conf portarchivemode yes
sourceとpackageの移動
既にあるソースとパッケージは再利用したいので、新しいディレクトリに移動させます。
# mv /opt/local.old/var/macports/distfiles/* /opt/local/var/macports/distfiles/ # mv /opt/local.old/var/macports/packages/darwin /opt/local/var/macports/packages/ #
インストール
パッケージが既にあるportをインストールすると、コンパイルせずにパッケージファイルを使用するので、面白いほどサクサクインストールが進みます。もちろんパッケージよりインストールするポートのバージョンが新しければ、コンパイルが行われ新しいパッケージが作成されます。
# port install lv +lesslikeslash ---> Computing dependencies for lv ---> Dependencies to be installed: ncurses ncursesw ---> Unpacking tgz archive for ncursesw 5.8_0 ---> Installing ncursesw @5.8_0 ---> Activating ncursesw @5.8_0 ---> Cleaning ncursesw ---> Unpacking tgz archive for ncurses 5.9_0 ---> Installing ncurses @5.9_0 ---> Activating ncurses @5.9_0 ---> Cleaning ncurses ---> Unpacking tgz archive for lv 4.51_2+lesslikeslash ---> Installing lv @4.51_2+lesslikeslash ---> Activating lv @4.51_2+lesslikeslash ---> Cleaning lv #
mysqlのインストール
# port install mysql5 mysql5-server # sudo -u _mysql mysql_install_db5 # cp /opt/local.old/etc/mysql5/my.cnf /opt/local/etc/mysql5/my.cnf # port unload mysql5-server # port load mysql5-server # mysql5 -u root -p < /tmp/mysql.dump #
postgresqlのインストール
# port install postgresql90 postgresql90-server # mkdir -p /opt/local/var/db/postgresql/defaultdb # chown -R postgres:postgres /opt/local/var/db/postgresql/defaultdb # ln -s /opt/local/var/db/postgresql /opt/local/var/db/postgresql90 # ln -s /opt/local/lib/postgresql90 /opt/local/lib/postgresql # su postgres -c ‘/opt/local/lib/postgresql90/bin/initdb -D /opt/local/var/db/postgresql90/defaultdb -E UTF8 --no-locale' # vi /etc/sysctl.conf kern.sysv.shmmax=167772160 kern.sysv.shmmin=1 kern.sysv.shmmni=32 kern.sysv.shmseg=8 kern.sysv.shmall=65536 # port load postgresql90-server # su postgres $ psql -f /tmp/pgsql.dump template1 $
apacheのインストール
# port install apache2 +preforkmpm # port install php5 +apache2 +pear # port install php5-curl php5-mbstring php5-mysql php5-postgresql # port install php5-gd +t1lib # mv /opt/local/apache2/conf /opt/local/apache2/conf.org # ln -s /var/www/conf /opt/local/apache2/conf # cp /opt/local/apache2/conf.org/extra/mod_php.conf /opt/local/apache2/conf/extra/ # cp /opt/local/apache2/conf.org/mime.types /opt/local/apache2/conf/ # rm -r /opt/local/apache2/htdocs # ln -s /Library/WebServer/Documents /opt/local/apache2/htdocs # ln -s /var/www/conf/php/php.ini /opt/local/etc/php5/php.ini # # port load apache2 #
それ以外のportも、最初に保存したinstall.txtを見ながら、抜けがないようにインストールしていきます。
他のマシンもMacPortsを再インストール
MacBook air 11インチにもMacPortsが入っているので、同じようにして再インストールしていきます。
ただしpackageファイルは先ほど再インストールが終了したマシンから移し替えます。このようにすれば、MacBook airには最新のパッケージが入るので、コンパイルレスでインストールができます。実際、実行すると爆速でインストールが終了します。