大津真さんの「XはUNIXでサーバで」という連載が始まりました。1ヶ月に1度の予定ですが、Mac OS XをUNIX的な使い方をしようというのが大きなテーマです。いきなりギャグで始まっていますけど(笑)。この連載に関しては、MacWIREへの転載は行わないことになっていまして、MDOnlineの読者の方しか読むことができません。ちょっと長いので、普通は数日に分けて出すのですが、今回は1回目ということで、まとめていきたいと思います。サイト等にも、告知を出しますが、有償の読者様を増やすという目的で、MacWIREさんには承諾をいただきました。内容についての御要望を、私でも大津さんにでもいただければと思います(連絡先は確認中なので、明日にでも)。この手のUNIXものとなると、ずっとMacをやってきた人にとってはもしかするといきなり大変かもしれません。一方、もっとディープにという方もいらっしゃるでしょう。どのレベルで落ち着かせるかということがなかなか難しいので、むしろ読者のみなさんの御意見がいただければと思っています。今回はとりあえずちょっと中級程度の内容ではありますが、初心者の方向けに用語を説明したりもしています。
それから、Sample Codesにたくさんのサンプルが上がっています。今日は1つ紹介しましたけど、順次紹介していきます。すぐにでもどんなものがあるのかを御覧になりたい方は、以下のページをどうぞ。
http://developer.apple.com/samplecode/
(新居雅行 msyk@mdonline.jp)
――――簡単な自己紹介
みなさま、こんにちは。今回から「XはUNIXでサーバで」のコーナーを担当させていただくことになりました大津真です。もともとは、某海外コンピュータメーカーのSEだったのですが、その後独立し、下請けプログラマ、売れないギタリスト、CMなんかの音楽制作、一升瓶の王冠収集人、国際線のパイロット、詩人、証券アナリスト..などなど(半分ウソ)これまでさまざまな仕事で細々と生計を立ててまいりました。最近では、なぜかライターとしての仕事がメインとなりつつあります。MDOnlineの発行人としておなじみの新居さんとも「Mac OS X導入パワフルガイド」などの書籍でご一緒させていただきました。
それでは、とうとつに本題に入らせていただきます。ご存じのようにMac OS X(Server)はAquaという羊の皮を被ってはおりますが、コア部分のDarwinは由緒正しい骨太UNIXです。このコーナーでは、一般ユーザはあまり意識する必要のないMac OS Xの心臓部分ともいえるUNIXレイヤーに焦点を当てて、コマンドの操作方法やサーバとしての運用方法などについて説明していきたいと思います。とはいえMac OS XのUNIX的活用については私自身も試行錯誤の部分も多く、また情報量も十分でないため、記事の間違えの指摘やよりうまい方法などなど、読者のみなさまからのフィードバックも熱烈歓迎しますのでどうかよろしくお願いします。なお、記事の内容によってはMac OS X Serverに特化した内容になることもあると思いますがその点もご了承下さいませ。また、このコースでは、Terminal上でUNIXコマンドを直接実行する必要があることがしばしばあります。Macユーザの多くはそのようなコマンドラインでの操作になれていないと思いますので、できるだけ毎回、記事の最後にUNIXの基礎知識をまとめておきますので参考にしていただければ幸いです。
さて、UNIXには多くの優秀なプログラマの英知の結晶ともいえる膨大な量のソフトウエア資産があります。しかもオープンソースとして公開されているものも少なくありません。それらを活用しない手はないね!ということで、今回は「UNIX用ソフトウエアをソースからコンパイルしてMac OS Xにインストールする方法」について説明していきます。
――――なにをインストールしようかな
なにを題材にしようかと思ったのですが、できるだけ役に立つものということで、私自身日頃から愛用しているTerminal上で動作するFTPクライアントNcFTPに決めました。
◇NcFTP
http://www.ncftpd.com/ncftp
あのFetchがMac OS Xに移植された今、なにをいまさらCUIのFTPを...と思われる方もいるかもしれませんが、NcFTPは、履歴機能、ファイル名の補完機能、ブックマーク機能、バッチ処理、バックグラウンド機など豊富な機能を持つ珠玉の一品のFTPクライアントです。しかもフリーですし(笑)。
なお、NcFTPはMac OS Xに標準でインストールされていますが、バージョンが2.4.3と古く、また恐ろしく便利なブックマーク機能も使えません。今回はNcFTPの最新版3.0.3をインストールしてみます。
――――インストールまでの流れを確認しておく
かつては同じUNIX系OSといえども、ソフトの移植はけっこう手間でした。最近ではimakeやautoconfのような自動化ツールが広まったおかげで比較的簡単になってきています。imakeはX Window System上で動作するソフトウエアのためのツールですので、とりあえずはMac OS Xとは無関係です。今回はautoconfによって作成されたconfigureスクリプトが用意されているソフトウエアを取り上げます(configureスクリプトの働きについては後ほど)。ソースの取得からインストールまでの全体の手順は次のようになります。
1. 圧縮されたソースファイルをダウンロードして展開
2. configureスクリプトでMakefileを作成
3. makeでコンパイル
4. make installでインストール
順に説明していきましょう。なお、コンパイルにはDeveloper Toolsが必要ですので、まだインストールされたいない方は、あらかじめインストールしておいてください。
――――作業用のディレクトリを作っておく
あらかじめ適当な場所にワーク用のディレクトリを作っておきます。Finder上で作成してもかまいませんが、Terminal上で行うにはmkdirコマンドを使います。たとえばホームディレクトリのDocumentsディレクトリの下に、ncftp-workディレクトリを作るには次のようにします。(以下、%はプロンプト、<return>はreturnキーを押すことを示しています。)
% mkdir ~/Documents/ncftp-work <return>
ここで、チルダ「~」は自分のホームディレクトリを表します。ディレクトリの移動にはcdコマンドを使います。作成したncftp-workディレクトリに移動するには次のようにします。
% cd ~/Documents/ncftp-work <return>
――――圧縮されたソースファイルをダウンロードして展開
次に、http://www.ncftpd.com/ncftpより圧縮されたソースファイル「ncftp-3.0.3-src.tar.gz」をダウンロードします。拡張子の「.tar.gz」はTARフォーマットでアーカイブされた後にGZIPフォーマットで圧縮されていることを表します(「.tar.gz」を略して「.tgz」となっている場合もあります)。このフォーマットは通称「tarボール」と呼ばれ、UNIX用ソフトウエアでは一般的なフォーマットです(最近ではBZIPで圧縮された拡張子が「.tar.bz2」のファイルも多くなってきていますが)。
tarボールは最近のStuffIt Expanderで解凍できるので、Internet Explorerでリンクをクリックするだけで自動解凍できます。ただし、まれにダウンロード先にディレクトリを作成せずに中身を直に展開するお行儀の悪いやつがいるので注意しましょう。ディスクトップがアイコンの山になってしまったりします。そのため、[リンクをディスクにダウンロード]を選択してダウンロードした後にTerminal上でtarコマンドを使って解凍することをオススメします(Terminalでの操作に慣れている方は、Linuxなどでは定番のwgetコマンドもMac OS Xにインストールされているのでそちらを利用してダウンロードしてもいいでしょう)。tarコマンドは、もともとはアーカイブを作成/展開するツールでしたが、最近のものは圧縮/解凍をサポートしています。
まずは、中身の確認からです。tarコマンドで圧縮ファイルの中身を確認するには「tvzf」オプションを付けて実行します。
% tar tvzf ncftp-3.0.3-src.tar.gz <return>
drwxr-xr-x 2 daemon bin 0 Apr 17 03:22 ncftp-3.0.3
drwx------ 2 daemon bin 0 Apr 17 03:22 ncftp-3.0.3/libncftp
-rw-r--r-- 1 daemon bin 3868 Sep 30 1999 ncftp-3.0.3/libncftp/libncftp.dsp
-rw-r--r-- 1 daemon bin 539 Sep 30 1999 ncftp-3.0.3/libncftp/libncftp.dsw
-rw-r--r-- 1 daemon bin 41665 Apr 16 02:37 ncftp-3.0.3/libncftp/cmds.c
〈以下略〉
これを見るとわかるようにNcFTPはカレントディレクトリに、きちんとncftp-3.0.3ディレクトリを掘って中身を展開するようです。これで安心。展開は「xvzf」オプションです。
% tar xvzf ncftp-3.0.3-src.tar.gz <return>
ncftp-3.0.3
ncftp-3.0.3/libncftp
ncftp-3.0.3/libncftp/libncftp.dsp
ncftp-3.0.3/libncftp/libncftp.dsw
ncftp-3.0.3/libncftp/cmds.c
ncftp-3.0.3/libncftp/util2.cpp
ncftp-3.0.3/libncftp/configure.in
ncftp-3.0.3/libncftp/errno.c
〈以下略〉
(続く)
カテゴリ:インターネット全般, UNIX, 大津真=XはUNIXでサーバで
――――configureスクリプトでMakefileの作成
さて、多くのソースファイルに分かれたプログラムをコンパイルしたりインストールするには通常Makefileと呼ばれるファイルが使われます。Makefileには、必要なライブラリの場所や依存関係、コンパイル手順、インストール先などさまざまな情報が記述されています。ただし、同じUNIX系OSといっても、コンパイラの相違やライブラリやヘッダのあるなしなど環境はさまざまであり、ひとつのMakefileですべてに対応するのは不可能です。そこで最近のオープンソースソフトウエアでよく利用されるのがconfigureスクリプトです。configureスクリプトをコンパイルを行うシステム上で実行すると、システムを検索してコンパイラやリンカなどを探し出しその環境にあったMakefileを自動作成してくれます。したがって、ソースを展開してみてconfigureスクリプトが含まれていたら、簡単にインストールできる可能性があると考えてもいいでしょう。もちろんNcFTPにもconfigureスクリプトが用意されています。ただし、configureスクリプトも万能ではありません。ほとんどのソフトはMac OS Xなどという新参者のOSを意識して作られていはいないということもあって、configureスクリプトがエラーとなる確率も低くありません。その理由としては、必要なライブラリがないなどという致命的な場合もありますが、簡単な修正やオプションの設定で対応できることもあります。
用意されているconfigureスクリプトにどのようなオプションがあるかは「--help」を付けて実行してみればわかります。「cd ncftp-3.0.3 <return>」などとして、展開したディレクトリのルートをカレントディレクトリにしておきます。
% ./configure --help <return>
Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
Configuration:
--cache-file=FILE cache test results in FILE
--help print this message
--no-create do not create output files
--quiet, --silent do not print ‘checking...’ messages
--version print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[same as prefix]
〈以下略〉
NcFTPの場合、特にオプションを指定しなくてもエラーにはなりません。気を付けるとすればインストール先でしょう。デフォルトのインストール先は「--prefix」で指定される「/usr/local」になっています。/usr/localはFHS(UNIXのディレクトリ構造を標準化するための提案)によればユーザコマンドの置き場所として適切なのですが、Mac OS Xの今後のバージョンアップが心配なのと、筆者の場合マシンを一人で使用することもあって、ホームディレクトリの下のmyLocalディレクトリに自分でインストールしたコマンド類をまとめて置くようにしています。
◇UNIXのディレクトリ構造を標準化するための提案:
http://pathname.com/fhs
そのためconfigureには「--prefix=$HOME/myLocal 」を付けて実行しました($HOMEは自分のホームディレクトリを表します)。
% ./configure --prefix=$HOME/myLocal <return>
creating cache ./config.cache
checking for gcc... no
checking for cc... cc
checking whether the C compiler (cc ) works... yes
checking whether the C compiler (cc ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether cc accepts -g... yes
〈以下略〉
以上でめでたくMakefileが生成されました。ディレクトリの内容を表示するlsコマンドで確認してみましょう。
% ls <return>
CHANGELOG NcFTP_All.dsp autoconf configure sh
FIREWALL-PROXY-README NcFTP_All.dsw config.cache configure.in sh_util
LICENSE.txt READLINE-README config.h doc sio
Makefile README config.h.in install-sh vis
Makefile.bin Strn config.log libncftp win
Makefile.in WHATSNEW-3.0 config.status ncftp
――――makeでコンパイル
コンパイルはmakeコマンドで行います。makeコマンドを引数なしで実行するとMakefileに記述された手順に従ってコンパイル&リンクを行いオブジェクトを生成します。
% make <return>
( cd Strn ; make "CC=cc" "CFLAGS=-D_LARGEFILE64_SOURCE -g -O2 -Wno-format-y2k" )
cc -D_LARGEFILE64_SOURCE -g -O2 -Wno-format-y2k -DSTRNP_ZERO_PAD=0 -DSTRN_ZERO_PAD=1 Dynscat.c -c
cc -D_LARGEFILE64_SOURCE -g -O2 -Wno-format-y2k -DSTRNP_ZERO_PAD=0 -DSTRN_ZERO_PAD=1 Strncpy.c -c
cc -D_LARGEFILE64_SOURCE -g -O2 -Wno-format-y2k -DSTRNP_ZERO_PAD=0 -DSTRN_ZERO_PAD=1 Strncat.c -c
cc -D_LARGEFILE64_SOURCE -g -O2 -Wno-format-y2k -DSTRNP_ZERO_PAD=0 -DSTRN_ZERO_PAD=1 Strntok.c -c
〈以下略〉
途中で、実行過程の他にワーニングやらエラーやらがだらだらと表示されると思いますが、binディレクトリを見てみるとオブジェクト自体はなんとか生成されたようです。
% ls bin
ncftp ncftpbatch ncftpbookmarks ncftpget ncftpls ncftpput
――――make installでインストール
コンパイルが終わったら「make install」でインストールします。このとき「-n」オプションを付けると実際にインストールはされずに、実行されるコマンドが表示されます。まあ、インストールするふりをして、変なところにコピーされないかとかを一応調べるわけです。
% make -n install <return>
( cd ncftp ; make "CC=cc" "CFLAGS=-D_LARGEFILE64_SOURCE -g -O2 -Wno-format-y2k" )
echo ’Done making NcFTP.’
( cd sh_util ; make "CC=cc" "CFLAGS=-D_LARGEFILE64_SOURCE -g -O2 -Wno-format-y2k" )
cc -D_LARGEFILE64_SOURCE -g -O2 -Wno-format-y2k -Dsh_util -DHAVE_CONFIG_H -I/Users/Shared/ncftp/ncftp-3.0.3 -I/usr/local/include -I. -I../libncftp -I../Strn -I../sio gpshare.o preffw.o spool.o util.o getline.o version.o ncftpget.c -o ../bin/ncftpget -L../libncftp -L../Strn -L../sio -L/usr/local/lib -lncftp -lStrn -lsio
strip ../bin/ncftpget
cc -D_LARGEFILE64_SOURCE -g -O2 -Wno-format-y2k -Dsh_util -DHAVE_CONFIG_H -I/Users/Shared/ncftp/ncftp-3.0.3 -I/usr/local/include -I. -I../libncftp -I../Strn -I../sio gpshare.o preffw.o spool.o util.o getline.o version.o ncftpput.c -o ../bin/ncftpput -L../libncftp -L../Strn -L../sio -L/usr/local/lib -lncftp -lStrn -lsio
strip ../bin/ncftpput
echo ’Done making NcFTP shell utilities.’
( cd vis ; make "CC=cc" "CFLAGS=-D_LARGEFILE64_SOURCE -g -O2 -Wno-format-y2k" )
cc -D_LARGEFILE64_SOURCE -g -O2 -Wno-format-y2k -Dvis -DNCFTPPATH=\"/Users/o2/myLocal/bin/ncftp\" -DHAVE_CONFIG_H -I/Users/Shared/ncftp/ncftp-3.0.3 -I/usr/local/include -I. -I../libncftp -I../Strn -I../sio bmed.c wgets.o wutil.o pref.o preffw.o trace.o util.o bookmark.o version.o -o ../bin/ncftpbookmarks -L../libncftp -L../Strn -L../sio -L/usr/local/lib -lncftp -lStrn -lsio -lcurses
strip ../bin/ncftpbookmarks
echo ’Done making NcFTP full-screen utilities.’
mkdir "/Users/o2/myLocal" "/Users/o2/myLocal/bin" "/Users/o2/myLocal/man" "/Users/o2/myLocal/man/man1" 2>/dev/null
echo ’..... Installing the programs .....’
/usr/bin/install -c bin/ncftp "/Users/o2/myLocal/bin/ncftp"
〈以下略〉
(続く)
カテゴリ:
実行結果を見て問題なさそうだったら、今度は「-n」オプションを付けずに「make install <return>」を実行します。ホームディレクトリの下のmyLocalディレクトリにインストールする場合、myLocalディレクトリは自動的に作成されるので、あらかじめ作っておく必要はありません。
% make install <return>
( cd ncftp ; make "CC=cc" "CFLAGS=-D_LARGEFILE64_SOURCE -g -O2 -Wno-format-y2k" )
Done making NcFTP.
〈中略〉
/Users/o2/myLocal/bin:
-rwxr-xr-x 1 o2 staff 209872 Aug 21 22:14 ncftp
-rwxr-xr-x 1 o2 staff 123312 Aug 21 22:14 ncftpbatch
-rwxr-xr-x 1 o2 staff 140332 Aug 21 22:14 ncftpbookmarks
-rwxr-xr-x 1 o2 staff 135624 Aug 21 22:14 ncftpget
-rwxr-xr-x 1 o2 staff 470052 Aug 21 22:14 ncftpls
-rwxr-xr-x 1 o2 staff 135624 Aug 21 22:14 ncftpput
Done installing NcFTP.
なお、デフォルトの「/usr/local」ディレクトリにインストールする場合にはroot権限が必要ですのでsudoコマンドを使用して
% sudo make install <return>
として下さい。
以上でインストールは完了です。次に、NcFTPを実行してみましょう。ホームディレクトリの下の「myLocal」をconfigureのprefixオプションでインストール先に指定した場合、「~/myLocal/bin/ncftp <return>」で起動できます。するとNcFTPのプロンプト「ncftp>」が表示されるので「help <return>」を入力すると使用可能なコマンドの一覧が表示されます。
% ~/myLocal/bin/ncftp <return>
NcFTP 3.0.3 (April 15, 2001) by Mike Gleason (ncftp@ncftp.com).
ncftp> help
Commands may be abbreviated. ‘help showall’ shows hidden and unsupported
commands. ‘help <command>’ gives a brief description of <command>.
ascii cat help lpage open quote site
bgget cd jobs lpwd page rename type
bgput chmod lcd lrename pdir rhelp umask
bgstart close lchmod lrm pls rm version
binary debug lls lrmdir put rmdir
bookmark dir lmkdir ls pwd set
bookmarks get lookup mkdir quit show
「help コマンド名 <return>」とするとNcFTPのコマンドの説明と、使用例が表示されます。
ncftp> help get
get: fetches files from the remote host.
Usage: get [-flags] file1 [file2...]
Flags:
-R : Recursive. Useful for fetching whole directories.
-z : Get the remote file X, and name it to Y.
-a : Get files using ASCII mode.
-A : Append entire remote file to the local file.
-f : Force overwrite (do not try to auto-resume transfers).
Examples:
get README
get README.*
get "**Name with stars and spaces in it**"
get -R new-files-directory
get -z WIN.INI ~/junk/windows-init-file
――――オンラインマニュアルを見るには
UNIXプログラムの多くはオンラインマニュアルが用意され「man コマンド名 <return>」で画面に表示できます。ただし、NcFTPの場合、単に「man ncftp <return>」とすると古い方のNcFTPのマニュアルが表示されてしまうので注意してください。
ホームディレクトリの下の「myLocal」をconfigureのprefixオプションでインストール先に指定した場合、~/myLocal/man/にマニュアルがインストールされます。そのため、manコマンドの「-m」オプションで、マニュアルのパスを指定して、
% man -m ~/myLocal/man/ ncftp <return>
とすることで、新たにインストールした方のNcFTPのマニュアルが表示されます。
――――コマンドパスを追加する
起動するのにいちいち「~/myLocal/bin/ncftp <return>」を実行するのは面倒ですね。また、単に「ncftp <return>」とするとMac OS Xに最初からインストールされている古い方のncftpが起動してしまいます。「ncftp <return>」で、新たにインストールした方のNcFTPが起動するようにするには環境変数PATHを設定します。コマンドインタプリタであるシェルは、環境変数PATHで指定されたディレクトリを順に検索してコマンドを探します。したがって「~/myLocal/bin」を環境変数PATHの最初にいれておけばいいわけです。
そのためには、シェル(tcsh)の起動スクリプトである「~/.tcsh」を開いて(なければ作成して)次のような行を加えておきます。
setenv PATH "${HOME}/myLocal/bin:${PATH}"
――――最後に
さて、NcFTPの場合はすんなりインストールできましたが、ものによっては「configureでこける」あるいは「makeでこける」といったことも少なくなりません。そんな場合も、あきらめずに、Internetを最大限に活用して、はやりのGoogleなどで検索したりBBSで訪ねてみると解決の糸口がつかめる場合もあることでしょう。ちなみに筆者は、MacOSX.com(http://www.macosx.ocm)のフォーラムなんぞをよくのぞいています。それでは次回まで、さよおなら。
[大津真]
[UNIX基礎知識]
■■シェル(Shell) ユーザとカーネル(UNIXの中心部分)の橋渡しをするプログラム。ユーザがTerminalで打ち込んだコマンドはシェルにより解釈されカーネルに伝えられる。シェルにはさまざまな種類があるがMac OS Xではtcshがデフォルトのシェルになっていて、Terminalのウィンドウを開いた段階でtcshが起動している。
■■ホームディレクトリ
文字通りユーザのホームとなるディレクトリ。Terminalのウインドウを開くと自動的にホームディレクトリに移動する。パスは「/Users/ユーザ名」。コマンドラインではチルダ「~」で指定できる。Finder上では「ホーム」ボタンをクリックして移動する。
■■環境変数
シェルの環境を設定する変数。ホームディレクトリを表す「HOME」、コマンドの検索パスを示す「PATH」などがある。printenvコマンドで一覧を表示できる
■■一般ユーザとスーパーユーザ
UNIXのユーザはスーパーユーザ(root)と一般ユーザに分けられる。スーパーユーザはその名の通りなんでもできるユーザ。システムにダメージを与える可能性があるコマンドは一般ユーザには実行できないようになっている。Mac OS Xの初期設定ではスーパーユーザとしてログインできないため、rootにしか許されないコマンドを実行するにはsudoコマンドを使用する。
■■lsコマンド
指定したディレクトリの一覧を表示する。引数を指定しない場合にはカレントディレクトリの内容が表示される。詳細を表示する「-l」、隠しファイルを表示する「-a」など多くのオプションが用意されている。
■■cdコマンド
ディレクトリを移動する。
■■mkdirコマンド
ディレクトリを作成する。
■■manコマンド
「man コマンド名 <return>」でUNIXコマンドのオンラインマニュアルを表示する。マニュアルはページャという種類のプログラムを使用して表示される。Spaceキー、Bキーで前後のページに移動できる。終了するにはQキーを押す。
■■sudoコマンド
root(スーパーユーザ)にしか許されていないコマンドを実行する。パスワードの入力が必要。
■■Terminal上で動作するエディタ
Terminal上で動作するエディタとして、emacs、vi、picoといったものがあらかじめインストールされている。いずれも日本語は通らない。初心者がマニュアルなしですぐに使い始められるのはpicoだが、emacsとviはUNIXのエディタの定番中の定番。特にviはほとんどのUNIXマシンにインストールされているので基本操作だけでもマスターしておくと便利。
カテゴリ:
STAZ Softwareは、Basic言語による開発ツール「FutureBASIC^3」のRelease 5を公開した模様だ。以前は人気のあった開発ツールであるが、最近はREALbasicに押され気味であるものの、少しずつではあるが機能アップしている。Release 5ではCarbon対応のアプリケーション生成の機能が付加されたことから、Mac OS X向けのアプリケーション作成が可能になる。FutureBASICに関する日本語での情報を公開するサイトであるfuturebasic.netでは、Carbon対応のサンプルコードをFutureBASIC向けに書き直し、Carbonアプリケーションを生成した結果を公開している。起動はするが、終了時にエラーが出るなどいくらか未完成な部分も見られるが、いずれにしてもFutureBASICも本格的にMac OS Xへの対応が行われたという点では大きな進歩となったと言えるだろう。なお、日本語版はモードが販売元となっているが、Webサイトを見る限りはRelease 5についての情報等はなく、販売されている日本語版の最新版はRelease 3となっている。すぐにでもCarbon対応版が欲しいとなると、STAZ Softwareから直接購入する必要があるかもしれない。
◇FutureBASIC^3
http://www.stazsoftware.com/fb.html
◇FutureBASIC3でCarbonアプリケーションをコンパイル
http://www.futurebasic.net/fb/fbcarbon.html
◇モード
http://www.mode.co.jp/
カテゴリ:Mac OS X, 開発ツール
WORLD PC EXPO 2001が、2001年9月19日(水)〜22日(土)に幕張メッセで開催されるが、Mac OS Xの専門パビリオン「Apple Mac OS X Pavilion」も展示会場に登場する。Mac OS X自体のデモンストレーションはもちろん、Mac OS X対応のアプリケーション等についてもサードパーティからの紹介もあるとしている。Macintoshの世界だけでなく、パソコン市場全体のユーザが来る中で本格的にMac OS Xや対応製品を露出する機会となる。
関連リンク:Apple Mac OS X Pavilionで、「Mac OS X 」の世界を体験しよう!
カテゴリ:Mac OS X, イベント
WebObjects 4.5.1の2つ目のアップデートプログラムの配付が開始された。WebObjectsの最新版はVer.5.0であるが、Java言語での開発のみの対応となっている。そこで、従来のObjective-Cベースで稼動させるアプリケーションをMac OS X/Server 10.0で利用するためのVer.4.5のアップデート版Ver.4.5.1もリリースしている。そのバージョンのアップデータである。アップデータは稼動プラットフォームごとに用意されているが、ダウンロードのリンクについても、Knowledge Baseの文書中に記載がある。Knowledge Baseの文書中に変更点が記載されているが、基本的にはバグ修正など細かい点である。しかしながら、開発の上では細かなバグ修正の影響がある場合もあるので、Ver.4.5.1を使っている人は変更点を一通り目を通した方がよいだろう。
関連リンク:WebObjects 4.5.1: WebObjects 4.5.1 Update 2 Overview
カテゴリ:各種製品, WebObjects
Sample Codeとして、Mac OS Xで稼動するデーモンのサンプル「MyFirstDaemon」が公開された。デーモンとはバックグランドで稼動するソフトウエアであり、Mac OS XではUNIX部分の機能で実現されるものだ。2つのサンプルコードがあるが、いずれもソースコードに詳しくコメントが書かれている。ソースコードはC言語だ。ポイントとしては、deamonというシステムコールを呼び出すことで、起動したプロセスをデーモン化する。そして、syslogといったコールにより、コンソールにメッセージが出される。実際にConsoleアプリケーションで、ソースコードの文字列と生成されたメッセージの対応を取ると良いだろう。1つのサンプルはデーモン自体がすぐに終了するが、別のデーモンは30秒ごとにInternet Explorerを起動あるいはアクティブにするといったものだ。デーモンの中で無限ループが組まれている。そして、そのデーモンを終了するには、Process Viewerでの一覧にある対応する項目をダブルクリックすることで行えるということが説明されている。また、systemというコールを利用すると、コマンドを与えることができる。このサンプルでは、openコマンドを使ってInternet Explorerを起動するということを行っている。また、一定時間なにもしないという場合には、sleepというコールを使っている。なお、Project Builderで生成した実行バイナリは、Terminalで起動できるものとはなるが、ダブルクリックで起動するものにはならない。単にデーモンを起動するだけならProject Builderで可能だ。プログラム自体は非常に簡単なものなので、少しのプログラミング経験者ならすぐに理解できる極めてシンプルなサンプルで分かりやすい。Mac OSでのプログラミングをずっとやってきた人だと、デーモンということにあまりなじみがないかもしれないが、このサンプルを取っ掛かりにしてはどうだろうか。
関連リンク:MyFirstDaemon
カテゴリ:開発情報, Mac OS X
Knowledge BaseにMac OS 9.2.1関連の文書が掲載された。Mac OS 9.2.1は、Mac OS XでのClassic環境での動作を改善したバージョンである。Mac OS X 10.0.xおよびMac OS X 10.1(2001年9月リリース予定)のClassic環境で使うシステムとして、Mac OS 9.2.1は利用できる。Mac OS Xを利用しているユーザはMac OS 9.2.1へのアップデートをすべきだとしている。
関連リンク:Mac OS 9.2.1: Provides Improved Mac OS X Compatibility
カテゴリ:Knowledge Base(旧TIL), OS関連ソフトウエア, Mac OS X, Mac OS 9
Mac OS 8/9で、AppleWorks 6.2のアップデータを使う時、機能拡張を組み込まずに起動し、CarbonLib 1.3.1/1.4を使っている場合、アップデータがエラーを出してアップデート作業が行わないことがKnowledge Baseで紹介された。CarbonLib 1.3.1以降を使っている場合には、機能拡張を組み込んだ状態でシステムを起動しすればよい。そうすれば、アップデータを使うことができる。
関連リンク:AppleWorks 6.2 Updater: Installer Will Not Open
カテゴリ:Knowledge Base(旧TIL), 文書作成アプリケーション