2008年5月22日木曜日

cacls.exe コマンドでディレクトリのACEを編集する

NTFSのディレクトリのアクセス権といえばプロパティから編集するものですが、 cacls.exe から編集することもできます。


本日アクセス権を編集しようとしたサーバでは、プロパティ画面が無応答になってしまう現象が出たので、 cacls.exe を使って ACE を書き足してみました。 e:\shared にアクセスさせたくないユーザを登録するための アクセス禁止グループ を作成後、コマンドラインより以下のコマンドを入力します。


X:\> cacls e:\shared /E /D "アクセス禁止グループ"
processed dir: e:\shared


/E は既存の ACE を残す(Edit)、 /D は指定したオブジェクトに対する拒否エントリを作成する(Deny)オプションです。 /E を忘れるととっても痛い思いをするので注意しましょう。


2008年5月21日水曜日

でかいファイルをDVD-Rに記録する

Red Hat Enterprise Linux 5 でデカいファイルをとりあえず DVD-R に記録する方法を探していたのですが、 growisofs コマンドを用いるのが楽なようです。 growisofs を使用すると DVD-R に簡単にオンザフライ書きこみを行えます。

# growisofs -dvd-compat -Z /dev/hda -r -l \
-x ~/image \
~/image/bigfile

上記コマンドで ~/image/bigfile のみを DVD-ROM に記録します(ファイル名は複数指定することもできます)。ディレクトリ構成は -x でルートにしたいディレクトリを指定していますので、 bigfile は ISO イメージ的には ISO イメージのルート直下に置かれます。

-Z /dev/hda は使用する DVD-R ドライブの指定です。 -r -l は RockRidge Extension で、ロングファイルネームを許容するために必要です。



2008年5月20日火曜日

W32Timeサービスの時刻同期機能をオフにする

Windows xp, Vista や Windows Server には、時間を管理するための W32Time サービスがあります。 W32Time サービスは以下の役割を持っています。


  • 別システムの時刻を取得し、自システムの時刻を取得した時刻に合わせる


  • サーバとして、別システムからの時刻問い合わせに応答する


ハードウェアレベルで仮想化を行う仮想マシン技術の場合 - たとえば VMware では、時刻同期は VMware Tools に含まれる時刻同期アプリケーションが用意されています。しかし、 W32Time サービスと VMware Tools の時刻同期機能を同時衝突しておもわぬ誤動作をすることがあります。


この問題を解決するには、 W32Time のクライアント機能を停止するか、 VMware Tools の時刻同期機能をオフにするかのどちらかが必要となります。


システムを Active Directory のドメインコントローラとして利用する場合など、 W32Time サービスが必須の場合があります。このようなケースでは、 W32Time サービスのレジストリ値を書き換えることで、自システムの時刻同期機能のみをオフにすることができます。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
"Type"="NoSync"

上記とおりレジストリ値を変更の上、W32Timeサービスをリスタートします。なお、 Type が "NTP" (デフォルト値)の場合には Network Time Protocol を用いて時刻同期を行います。

W32Time サービスの詳細については以下のドキュメント(Microsoft Word形式)が参考になります。

The Windows Time Service By Shala Brandolini and Darin Green, Microsoft Corporation
Published: April 2001


2008年5月17日土曜日

BLADE3.0祭@仮想化友の会

5/16は久々に仮想化友の会の勉強会でした。

お題はブレードサーバ。会場には HP BladeSystem c3000 があって、各自持ち込んだ CD-ROM 等からブレードに OS を iLO2 でインストール大会。しかしネットワーク負荷的な事情によりほとんどの人がOSインストールを達成できずに、50インチのプラズマテレビでニコニコ動画を見たりとか色々と gdgd でした。(悪いことだとは思ってないんですが)

個人的には HP BladeSystem の管理画面や、ハードウェアを実際にいじる機会に恵まれたので、それだけでも満足。私自身は Windows Server 2008 をブレードにインストールしていましたが、ファイルの展開 81% でタイムイズオーバー、とっても残念。できたら Hyper-V 動かしてみたかったんだけどなー。


2008年5月16日金曜日

どこかのマシンにぶら下がっている共有を特定のドライブにマップするVBScript

USBハードディスクを複数のPCで共有しているときに、どのマシンからでも同じドライブレターで共有をマップできるツールを VBScript で書いてみました。


USBハードディスクが \\pc1\共有 もしくは \\pc2\共有 のどちらかとして共有されるシチュエーションを想定し、 \\pc1 もしくは \\pc2 のどちらかに共有が見つかればドライブをマップします。この際、目的のドライブレターに他のネットワーク共有をマップされていたら、その共有は切断した上でマップしなおします。


利用する場合は、特に DoMount() をニーズにあわせて書き直してください。正直なところエラーチェックやテストは不十分です。VBScript自体、ここ数年間で2つしか作ったことがないので、中身にあまり期待はしないでください...


Option Explicit
'On Error Resume Next

If DoMount Then
 WScript.Echo "フォルダを S: にマウントしました。"
Else
 WScript.Echo "フォルダをマウントできなかったようです..."
End If

Function DoMount
 If TryToConnect("S:", "\\pc1\共有") Then
  DoMount = True
 ElseIf TryToConnect("S:", "\\pc2\共有") Then
  DoMount = True
 Else
         DoMount = False
 End if
End Function

Function IsShareExist(ShareName)
 Dim objFSO

 Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
 IsShareExist = objFSO.FolderExists(ShareName)

End Function

Function TryToConnect(Drive, ShareName)
 TryToConnect = False

 If IsShareExist(ShareName) Then
  TryToConnect = DoMapNetwork(Drive, ShareName)
 End If
End Function

Function DoMapNetwork(strDrive, strPubFolder)
 Dim objWshNetwork
 Set objWshNetwork = WScript.CreateObject("WScript.Network")
 Dim CurrentMapped

 DoMapNetwork = False
 CurrentMapped = GetMapNetwork(strDrive)
 If CurrentMapped = strPubFolder Then
  DoMapNetwork = True
  Exit Function
 ElseIf CurrentMapped <> "" Then
  objWshNetwork.RemoveNetworkDrive strDrive, True
 End If

 objWshNetwork.MapNetworkDrive strDrive, strPubFolder
 DoMapNetwork = (Err.Number = 0)
End Function

Function GetMapNetwork(strDrive)
 Dim WshNetwork, oDrives, i
 Set WshNetwork = WScript.CreateObject("WScript.Network")
 Set oDrives = WshNetwork.EnumNetworkDrives

 GetMapNetwork = ""
 For i = 0 to oDrives.Count - 1 Step 2
  If strDrive = oDrives.Item(i) Then
   GetMapNetwork = oDrives.Item(i + 1)
  End If
 Next
End Function

2008年5月15日木曜日

VMware Serverへの Sarge移行および時刻同期

とある場所にて、 Windows Server 2003 に Sarge の仮想マシンを移行した。


移行対象の仮想マシンはこれまで colinux 上で動作していたものです。元々は VMware Workstation 上で作成した仮想マシンを colinux 用に変換したものでしたので、以下の手順で再度 VMware 用に変換できました。


VMware で仮想マシンを動作させる際に注意が必要な点としては 2.6 カーネルをゲストに使用すると時刻が進んでしまったり、遅れてしまったりする現象があります(このあたりはcoLinuxやXenなど、ハードウェアエミュレーションではなく準仮想化的アプローチのほうがホストとの時刻同期は正確です)。この問題については、もちろんハードウェア構成やホスト OS 構成、使用する Linux カーネルなどの条件がからむため一概には言えないようですが、 Linux カーネル時のオプション指定(※1)と VMware Tools に含まれる vmware-guestd の時刻同期機能(※2)の設定を行ったところ、今回のケースでは他のシステムと最大でも2~3秒程度のズレの範囲で維持できるようになりました(実際のところ、先走ったり遅れたりはしています...)。


nosmp noapic nolapic clock=pit    … (※1)
tools.syncTime = "TRUE"           … (※2)




【作業概要】

  • 適当な Linux ベースの仮想マシン(以後作業用VM)に、マイグレーション先の仮想ハードディスクを設定

  • 作業用VMを起動

  • 作業用VMでマシン上にファイルシステムを作成

# fdisk /dev/sdb
  ※パーティーション sdb1 (Linux), sdb2 (Linux swap) を設定
# mkfs.ext3 /dev/sdb1
# mkswap /dev/sdb2
# mkdir /mnt/new_image
# mount /dev/sdb1 /mnt/new_image

  • 作業用VMから Windows Server 2003 上の仮想マシンイメージをマウント

# mkdir /mnt/foo /mnt/orig_image
# mount -t msdos -o username=administrator //ws2003/foo /mnt/foo
# mount -o ro,loop /mnt/foo/hoge.ext3 /mnt/orig_image

  • 作業用VMにて、仮想マシンのイメージを新しいディスクイメージにコピー

# cd /mnt/orig_image; tar cf - * | tar xvf - -C /mnt/new_image

  • fstab, grub.lst などの設定見直し

GRUB起動パラメータ (Linux 2.6カーネルの時刻ズレ対策)
  kernel          /boot/vmlinuz-2.6.8-2-386 root=/dev/sda1 ro (続)
                               nosmp noapic nolapic clock=pit

  • 作業用VMからディスクイメージをアンマウントし、新しいVMにマウント

  • GRUB ISOイメージで起動し、ブートローダをインストール

  • VM起動確認

  • VMware Toolsのインストール

  • VM の .vmx ファイルに以下の設定を追加(変更)

tools.syncTime = "TRUE"

2008年5月11日日曜日

ZFSでミラーリング

ディスク2基を使ってZFSのミラー環境を作ってみました。


# zpool add -f mypool mirror c6d0s2 c6d1s2


3秒ぐらいで何も言わずに終了。続いてファイルシステムを作ります。


# zfs create mypool/nfs
# zfs crrate mypool/iscsi


各ファイルシステムは /mypool/nfs/ /mypool/iscsiにマウントされていますが、これを/export以下に移動させます。

# mkdir -p /export/nfs /export/iscsi
# zfs set mountpoint=/export/nfs mypool/nfs
# zfs set mountpoint=/export/iscsi mypool/iscsi

確認するには zfs list コマンドを使用します。

-bash-3.2# zfs list
NAME                                 USED  AVAIL  REFER  MOUNTPOINT
mypool                               705M   228G    18K  /mypool
mypool/iscsi                          18K   228G    18K  /export/iscsi
mypool/nfs                           704M   228G   704M  /export/nfs

各ストレージに対するI/Oの状況をチェックするにはzpool iostatコマンドを使用します。

-bash-3.2# zpool iostat -v
               capacity     operations    bandwidth
pool         used  avail   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
mypool       804M   231G      0     18     51  1.12M
  mirror     804M   231G      0     18     51  1.12M
    c6d0s2      -      -      0     15    176  1.13M
    c6d1s2      -      -      0     15      0  1.13M
----------  -----  -----  -----  -----  -----  -----
rpool       2.29G  27.5G      2      1   156K  26.7K
  c5d1s0    2.29G  27.5G      2      1   156K  26.7K
----------  -----  -----  -----  -----  -----  -----

とりあえず試しにほかのホストからホームディレクトリを tar でコピーしてみました。この時点ではbandwidthの値がうまく分散していないようです(readがミラーのうち片方に偏っている)。試しにmypoolの中でファイルをcpしてみました。これでread, writeの操作がファイルシステムにたいし行われるはずです。

-bash-3.2# zpool iostat -v         
               capacity     operations    bandwidth
pool         used  avail   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
mypool      1.11G   231G      2     21   348K  1.43M
  mirror    1.11G   231G      2     21   348K  1.43M
    c6d0s2      -      -      1     18   174K  1.43M
    c6d1s2      -      -      1     18   174K  1.43M
----------  -----  -----  -----  -----  -----  -----
rpool       2.29G  27.5G      2      1   147K  25.1K
  c5d1s0    2.29G  27.5G      2      1   147K  25.1K
----------  -----  -----  -----  -----  -----  -----

c6d0, c6d1のbandwidthが一緒になったので、どうやらリード操作がストライピングされたようだ。

ついでなので、ディスク c6d1 の電源を落としてみました。

May 11 10:53:06 opensolaris genunix: [ID 698548 kern.notice] ata_disk_start: select failed

I/O操作でブロックされ、ターミナルが反応しなくなってしまった...

mb:~ hasegaw$ ping 192.168.44.42
PING 192.168.44.42 (192.168.44.42): 56 data bytes
64 bytes from 192.168.44.42: icmp_seq=0 ttl=255 time=10081.327 ms
64 bytes from 192.168.44.42: icmp_seq=1 ttl=255 time=9081.151 ms
64 bytes from 192.168.44.42: icmp_seq=2 ttl=255 time=8081.209 ms
64 bytes from 192.168.44.42: icmp_seq=3 ttl=255 time=7081.229 ms
64 bytes from 192.168.44.42: icmp_seq=4 ttl=255 time=6081.241 ms
64 bytes from 192.168.44.42: icmp_seq=5 ttl=255 time=5075.657 ms
64 bytes from 192.168.44.42: icmp_seq=6 ttl=255 time=4075.728 ms
64 bytes from 192.168.44.42: icmp_seq=7 ttl=255 time=3075.743 ms
64 bytes from 192.168.44.42: icmp_seq=8 ttl=255 time=2075.837 ms
64 bytes from 192.168.44.42: icmp_seq=9 ttl=255 time=1075.855 ms
64 bytes from 192.168.44.42: icmp_seq=10 ttl=255 time=75.989 ms
64 bytes from 192.168.44.42: icmp_seq=11 ttl=255 time=0.896 ms
64 bytes from 192.168.44.42: icmp_seq=12 ttl=255 time=0.936 ms
64 bytes from 192.168.44.42: icmp_seq=13 ttl=255 time=0.949 ms

しばらくするとpingに応答しなくなったり、突然復活したり、という状況。これではmirrorの意味があまりないなぁ.... デバイスドライバ側の問題なのかしら。ちなみにインターフェイスはICH5です。

OpenSolaris 2008.05をインストールする

OpenSolaris プロジェクトから、はじめての一般ユーザ向けリリースとなるOpenSolaris 2008.05 がリリースされました。 OpenSolaris には ZFS などの技術で関心を持っていたので、今日はついカッとなって OpenSolaris 2008.05 をインストールしてみました。



  • OpenSolaris 2008.05 をライブCDで起動する



  • ハードウェア対応状況をライブCDから確認する



  • OpenSolaris 2008.05 をライブCDからインストールする


  • OpenSolaris はファイルサーバの構築にはかなり期待できる OS ではないかと個人的に思っています。なぜなら ZFS(Zetabyte File System) による強力なストレージ管理を利用できるためです。そのほか NFS サーバとしての運用にも向いていますし、 iSCSI ターゲットとして運用しても可です。


    OpenSolaris 2008.05 は現在 http://www.opensolaris.com/get/ からダウンロード可能です。 700MB の CD-R 一枚で、ハードディスクにOSをインストールしなくても、 CD ブートするとライブ CD として利用でき、 Device Driver Utility を使えば OpenSolaris のデバイスドライバ対応状況を確認できるなど便利です。


    ◆ opensolaris 2008.05 をライブCDから起動する

    OpenSolaris 2008.05を起動すると、以下に示す GNOME デスクトップが表示されます。デスクトップ上には Firefox や Thunderbird があり、そのほかにも GIMP をはじめ多くのアプリケーションを Live CD 上で利用できます。

    OpenSolaris LiveCDで起動したイメージ
    OpenSolaris LiveCDで起動したイメージ

    Live CD で動作している場合は、ホームディレクトリに置かれたファイルはメモリファイルシステム上に配置されます。このためシステムをシャットダウンすると失われるのは当然ですが、実装メモリ量が少ないマシンの場合はアプリケーションを複数起動したりするとメモリ不足が生じうまく動作しないことがあります。メモリ512MBのマシンでは、OpenSolarisインストーラ、GIMPを起動した状態でターミナルを起動できませんでした。

    ◆ ハードウェア対応状況をライブCDから確認する

    デスクトップ上の Device Driver Utility アイコンをクリックすると、 OpenSolaris が認識しているハードウェアの情報が表示されます。

    Device Driver Utility
    Device Driver Utility

    私が所有するコンピュータでは以下のデバイスが認識されませんでした。

    • Marvell Technology Group Ltd. 88E8001 Gigabit Ethernet Controller

    • Integrated Technology Express, Inc. IT/ITE8212 Dual channel ATA RAID controller

    • Brooktree Corporation Bt848 Video Capture

    Bt848が認識されないことは特に問題がありませんが、88E8001 Gibabit Ethernet Controllerが認識されていないことから、LinuxやそのほかのPC UNIXと比べNICへの対応が手薄いことが感じられます。もちろんOpenSolarisに本気で取り組むのであれば、OpenSolarisがサポートしているハードウェアを選定しましょう。

    ITE8212は使用マザーボードに搭載されているParallel ATA用RAIDチップです。ICH5については認識されていますので、ハードディスクを多数装着する場合でなければそれほど実害はないでしょう。

    ちなみに Hewlett Packard の Proliant ML115 では Submit ボタンを押すと以下のようにハードウェア情報が表示されました。モデルが自動的に特定されるようです。

    Device Driver Utility (HP ML115の場合)
    Device Driver Utility

    ◆ OpenSolaris 2008/05 をライブCDからインストールする

    opensolaris 2008.05のインストールはこのライブCD自体から行うことができます。デスクトップ上にある 「OpenSolaris をインストールする」アイコンをダブルクリックすると、OpenSolaris 2008.05のインストーラが起動します。

    OpenSolaris 2008.05 インストーラ
    Installer

    次へをクリックします。

    ディスク
    ディスク

    OpenSolarisをインストールする先をインストールします。OpenSolarisはディスク全体か、もしくはディスク上のパーティーションにインストールできます。/varや/usrなどのパーティーションは分割する必要はありません(このインストーラからでは分割できません)。

    今後データ用のZFSプールを作成することを想定し、今回はディスク上に32GBのシステム用パーティーションを作成し、その中にインストールすることにしました。一つ目のパーティーションタイプをSolarisに変更し、左側のボックスに32と入力するだけです。残りのパーティーションは以後別途パーティーショニングするため、未使用のままにしておきます。

    タイムゾーンの設定
    タイムゾーン


    タイムゾーンの設定画面です。地域「アジア」、場所「日本」を順番に選択します。この時点でタイムゾーンは自動的に「日本」が選択されたことと思います。

    ロケール
    ロケール

    ここではデフォルトの言語を選択します。「日本語」を選択します。

    ユーザー
    ユーザー

    ここではrootアカウントのパスワード、最初の一般ユーザの登録、およびコンピュータ名の設定を行います。

    インストール
    インストール

    インストールここではインストールパラメータを確認します。

    インストール中の画面
    インストール中の画面

    Live CDからインストールが開始されます。

    インストール完了
    インストール完了

    インストールが完了すると以下に示す画面が表示されます。

    インストールログ
    インストールログ

    インストールログの表示を選択すると以下のような画面が表示されます。残念ながら直接ファイルに落とすことはできないようですが、テキストボックスになっていますので、Ctrl-Aでテキスト全体を選択しコピーした後、エディタやコンソールにペーストすることができます。


    2008年5月5日月曜日

    Flexアプリケーションのスクロールバーを抑制&小オブジェクトのはみ出し禁止

    Flexでブログパーツを作ろうと思い色々いじっていたが、クライアント領域にコンポーネントが収まらないと勝手にスクロールバーが出てしまい具合が悪かった。スクロールバーを出さないためにはコンテナのhorizontalScrollPolicy, verticalScrollPolicyにoffを指定すればよいようだ。

    また、コンテナ内のオブジェクト(たとえばロードした画像)が親コンテナからはみ出すようなケースもあるが、はみ出し部分を非表示にするにはclipContentにtrueを指定すればよい。

    <mx:Canvas id="borderCanvas" width="180" height="300" x="0" y="0"
        clipContent="true" horizontalScrollPolicy="off"
        verticalScrollPolicy="off">
    ...
    </mx:Canvas>


    GIMP for Mac OS Xのインストール→不発

    画像の加工をしたくなったのでGIMP for Mac OS XをMacBookに入れようと思ったけど、OSのインストールメディアからX11.appをインストールしておかないと利用できないようだ。

    Xcodeはインストールしてあるものの、X11.appはそういえばまだインストールしていない... OSのメディアが川崎にあるので、GW中は諦めるしかないな。連休明けにリベンジしよう。


    2008年5月4日日曜日

    Software Design 2008/4: SD流 仮想化技術フルコース【セキュリティ編】

    すでに発売からしばらく時間が経過していますが、Software Design 2008/4にてSD流 仮想化技術フルコース【セキュリティ編】なる特集がありました。

    この特集ではXen徹底入門でもおなじみの宮本さんがXenのsHypeについてまとめられています。

    そのほか仮想マシンの運用管理についても記事がありました。仮想マシンの構築や導入についてはたくさんの記事が見つかりますが、今後の仮想化技術に対する関心は運用フェーズのノウハウにシフトしていくと思っているので興味深く、この特集は一気に読んでしまいました。


    Flexアプリケーションのロード直後に関数を呼び出す

    Flexアプリケーションはイベントドリブンプログラミングの方式なので、Flash Playerによりロードされると事前に定義されたオブジェクトが配置された状態で、ブラウザ内に表示されます。

    もちろんこれで初期化が十分ならいいのですが、アプリケーション開始後に実際のコンテンツをほかのURLからXMLデータとしてダウンロードしたい場合など、アプリケーションの開始直後に初期化ルーチンを呼び出したいケースがあります。

    このような場合にはApplicationクラスinitializeイベントがありますので、このイベントハンドラをトリガに初期化ルーチンを起動できます。


    Application.initializeイベントのハンドラとしてOnInitialize()を指定する例を以下に示します。


    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"

        horizontalAlign="center" verticalAlign="center" initialize="OnInitialize()">

    OnInitialize()内では、そのアプリケーションの初期化処理を行います。ここではUItimer(Timerクラス)を初期化する例を示します。


    private function OnInitialize(): void {

        UItimer = new Timer(100, 0);

        UItimer.addEventListener("timer", OnTimerEvent);

        UItimer.start();

    }

    MacOS XにFlex SDKを導入

    最近ホットなAdobe Flexをいじってみたくなったので、MacOS X 10.4 (Tiger) 環境に Adobe Flex 3 SDK を導入してみました。

    FlexとはAdobeのFlashベースの技術で、リッチクライアントの実装などの用途に利用できるプログラミング言語です。Flexで記述したソースコードはコンパイルするとFlashと同じswf形式になり、Flash Playerで再生できます。作る側としてはJava appletに限りなく近いのですが、Java VM上ではなくFlash Player上で動作するため、Java appletより動作が軽快でFlashの特徴を合わせ持ったプログラムを作ることができます。

    まずAdobeのサイトからflex_3_sdk.zip (約78MB) をダウンロードしてきます。このアーカイブを展開すると、以下のような構造になっています。

    drwx------    8 hasegaw  hasegaw    272 Apr  3 16:57 ant
    drwx------    3 hasegaw  hasegaw    102 Apr  3 16:57 asdoc
    drwx------   29 hasegaw  hasegaw    986 Apr  3 16:57 bin
    -rwx------    1 hasegaw  hasegaw    138 Apr  3 16:57 flex-sdk-description.xml
    drwx------   16 hasegaw  hasegaw    544 Mar 31 18:08 frameworks
    drwx------   52 hasegaw  hasegaw   1768 Mar 31 18:08 lib
    -rwx------    1 hasegaw  hasegaw  33774 Apr  3 16:57 license-adobesdk.htm
    -rwx------    1 hasegaw  hasegaw  27786 Apr  3 16:57 license-mpl.htm
    -rwx------    1 hasegaw  hasegaw  15261 Apr  3 16:57 readme.htm
    drwx------    4 hasegaw  hasegaw    136 Mar 31 18:08 runtimes
    drwx------    8 hasegaw  hasegaw    272 Mar 31 18:08 samples
    drwx------    9 hasegaw  hasegaw    306 Mar 31 18:08 templates

    今回はこれらを/opt/local/flex_sdk_3/に展開し、/opt/local/flex_sdkにシンボリックリンクをはりました。

    % sudo mv flex_sdk_3 /opt/local/
    % sudo ln -s flex_sdk_3 /opt/local/flex_sdk
    % sudo chown -R root:admin /opt/local/flex_sdk_3/
    % sudo chmod -R go+rx /opt/local/flex_sdk_3/
    % ls -l /opt/local/
    (中略)
    lrwxr-xr-x     1 root  admin    11 May  3 13:59 flex_sdk -> flex_sdk_3/
    drwxr-xr-x    15 root  admin   510 May  3 13:53 flex_sdk_3
    (中略)

    これでファイルの展開は完了です。あとはFlex SDKのコマンドであるmxmlcコマンド等を実行できるようにパスを通します。とりあえず私の場合は ~/.profile に以下の通り書いてみました。

    export PATH=$PATH:/opt/local/flex_sdk/bin

    mxmlcコマンドで以下の表示がなされれば、とりあえず利用できます。

    mb:~/work/flex hasegaw$ mxmlc
    Loading configuration file /opt/local/flex_sdk_3/frameworks/flex-config.xml
    Error: a target file must be specified
    Use 'mxmlc -help' for information about using the command line.
    mb:~/work/flex hasegaw$

    2008年5月1日木曜日

    MacBook

    知人から MacBook を譲っていただいたのを機に、マカーに変身してみました。まだまだヨワヨワですが、少しずつMacへのシフトを進めています。ということで、Macもブログのネタにしていきたいココロ。