きりかノート 3冊め

おあそびプログラミング

port:tclとport:tkを8.5にする手順 (Re:445)

規制で書けなかった…とりあえずこっちに書いときます。

MacPortsスレの445さんへ。

通常、Macではデスクトップや書類などのフォルダは他ユーザでアクセスできないようになっています。

   % ls -ld ~/Desktop
   drwx------+ 39 kimuraw  staff  1326 Apr 13 01:15 /Users/kimuraw/Desktop/

そのため、sudoしたコマンドではデスクトップにあるファイルを読むことができず、"Could not open file"になってしまいます。ホームディレクトリ直下など、他のユーザでも rx が付与されている場所にportfileを置く必要があります。

実行例)

   % mkdir ~/ports
   % ls -ld ~/ports
   drwxr-xr-x  4 kimuraw  staff  136 Apr 16 21:37 /Users/kimuraw/ports/
   % cd ~/ports
   % svn co -r99712 https://svn.macports.org/repository/macports/trunk/dports/lang/tcl
   % svn co -r99712 https://svn.macports.org/repository/macports/trunk/dports/x11/tk
   % port file ./tcl ./tk # ファイルパスを指定
   /Users/kimuraw/ports/tcl/Portfile
   /Users/kimuraw/ports/tk/Portfile
   % sudo port install ./tcl ./tk

また、upgradeなどのはずみで8.6に上がってしまわないようにしたい場合は、もうひと手間かけます。sources.confを編集し自分が用意したPortfileを優先するようにします。

   % cd ~/ports
   % svn co -r99712 https://svn.macports.org/repository/macports/trunk/dports/lang/tcl lang/tcl
   % svn co -r99712 https://svn.macports.org/repository/macports/trunk/dports/x11/tk x11/tk
   % sudo vi /opt/local/etc/macports/sources.conf
   # rsync...より上に以下の行を入れます。ユーザ名は自分用に調整してください。
   # file:///Users/kimuraw/ports [nosync]
   % portindex
   % port file tcl tk # port名を指定し、portindexが反映されていることを確認
   /Users/kimuraw/ports/lang/tcl/Portfile
   /Users/kimuraw/ports/x11/tk/Portfile
   % sudo port install tcl tk