Home

Ergo Sum

eXstreamNicoサーバーをUbnutu10.04環境にインストールする

0.前提

eXstreamNicoとはiPhone用の非公式ニコニコ動画視聴アプリです。
特徴としては公式アプリよりも画質がいいなど、いくつかメリットがあります。
ただし、このアプリはニコニコ動画とアプリ間に専用仲介サーバーを立てる必要がありまして、その敷居が若干高いと思われます。
(要は、アプリからその専用サーバーにアクセスする。そこからニコニコ動画本体へ接続。)
今回はCentOS用のインストール手順をベースとしてUbnutu10.04環境へのインストールを行います。
なお、今回のインストールは以下の条件下で行っています。

  • S@@SesのVPSサーバーにてインストールを実施
  • Plaggerなどを導入済のためいくつかのライブラリは既にインストール済

上記の条件のため、一からサーバー構築をされている場合モジュールのインストール等で不足が発生する可能性がありますが、そちらについては適宜環境に合わせて対応ください。

1.概要

基本は公式Wikiの手順に則って作業します。
ただし一部インストールするモジュール、手順などに変更がありますので、そちらを削除、追記しつつUbuntu10.04用にまとめます。
流れとしては以下になります。

  1. 各ソフトウェアのコンパイル、インストールに必要なツールのインストール
  2. ffmpegライブラリのインストール
  3. ffmpeg本体のインストール
  4. live_segmenterのインストール
  5. ruby関連のインストール
  6. NairServerLinuxの起動
  7. iPhoneアプリ上での接続設定及び接続

2.手順

各ソフトウェアのコンパイル、インストールに必要なツールのインストール
Wikiにしたがって必要なツールをインストールします。
CentOSとUbuntuだと微妙にバッケージ名が異なったりしますので、Ubuntuの場合下記をインストールすればOKだと思います。

gcc g++ automake libtool zlib1g-dev bzip2 yasm openssl libxml2-dev libxslt1-dev
ffmpegライブラリのインストール
x264
こちらについてはスナップショットの最新版をダウンロードし、Wikiの通りにインストールすれば問題ありません。
また、configureオプションについてもWikiの通りにしてください。(私はこれで少しはまりました)
Xvid、lame、faad
こちらについてはWikiの通りにインストールします。
faac
私の環境だとfaacのみmakeでエラーが出てしまい、aptitudeからのインストールとしました。
現状これで動作してるので問題ないと思います。
faacはaptitudeからはVer1.26がインストールされます。
ffmpeg本体のインストール
こちらもWiki記載の手順の通りのインストールで問題ありません。
configureオプションについても全く同様に指定してください。
live_segmenterのインストール
Wiki記載の手順通りで問題ありません。
ruby関連のインストール
ruby
aptitudeからのインストールで問題ないです。
opensslモジュール
こちらについては、Wikiのリンクからソースをダウンロードしてそれのみコンパイルしましょう。
gem
aptitudeからのインストールで問題ありませんが、aptitudeの場合バージョン制限がかかってしまう(aptitudeからのUpdateしかできない)ため、それを回避したいならソースからのインストールの方がよいと思います。
gemからのjsonインストールについてはバージョン依存があるようなので特に気をつけてください。
NairServerLinux4.0.3だと、jsonはv1.4.3でないと正常に動作しません。
NairServerLinuxの起動
最初はWikiの手順通りで問題ありません。
その状態で後述のiPhoneからの接続等を実施してサーバーが正常に動作するかどうか確認するとよいと思います。
本運用にする場合はバックグラウンドでの動作にすると思いますので、以下のコマンドなどでバックグラウンドで動作させるとよいと思います。

nohup ruby webrick_server.rb &
iPhoneアプリ上での接続設定及び接続
これは一点だけ、サーバー指定する際はhttp://をつけずに設定してください。
サーバー名だけでOKです。
これ、個人的にかなりはまりました。

3.まとめ

現状、iPhone用アプリについてはiOS4未対応ということですが、十分に動作します。
なので今購入しても特に問題ないかなー、というのが所感です。
サーバーアプリについてはMac版、Windows版もあります。Mac版はappになっているのでかなり導入は楽ですね。
今回Ubuntuを選択したのは外にVPSのUbuntu環境を既にもっていたので、それを流用して外からみれるようにしたかった、というのがあります。
私の自宅の環境のネットワークはちょっと不調で外部からのアクセスをやめてましたので、こういう環境で試みてみました。
元々LAN内でWi-Fi接続を想定したものとなっているようなのですが、3G回線でも十分動くので問題ありませんね。
ただし、このアプリ、読み込みから再生までそこそこ時間がかかります。
オーバーヘッドがどこにあるか調べてませんが、サーバーログをなんとなくみていると、トランスコードの処理に時間がかかっているように見えます。
それ踏まえると、サーバー側はそこそこスペックいい方が幸せかもしれません。

あとは作者の方が用意されているiOS4対応版と、iPad版のアプリリリースが待たれるところです。
iPhoneアプリでもiPadで動作するのですが、いかんせん解像度が解像度なので常用はちとつらいです。

ex.問題の切り分けにあたって

eXstreamNicoのサーバーは手順の最後にあるようにwebrick_server.rbをキックして起動させますが、 ターミナルから単にキックしただけだと動作状況を標準出力にそのまま吐きます。
最初に起動させる時、もしくは何か問題が発生した場合は、そのように起動させてエラーログを見ると問題の切り分けに役立つかもしれません。

TvRockにてTwitRock.exeからTwitterへの録画開始終了通知を行う

0.目的

PT2、friioなどをWindows環境で運用するならばおそらく外すことのできない録画管理アプリ、TvRock。
元々このTvRockには試験的にいくつかの情報をTwitterへ通知する機能があったのですが、TwitterのBasic認証廃止がアナウンスされていることに伴い、機能が削除されました。
しかしながらリマインダ、録画が開始されたかの確認、録画時のエラー確認など何かと有用なこの機能を、別のやりかたで実現したいというのが趣旨です。

1.概要

@hageatamaが通知用の便利プログラムをつくってくれたので実現は超簡単です。

  1. TwitRock.exeをダウンロードする
  2. TvRock本体を0.9u以降のバージョンにし、コマンドにてTwitRock.exeを起動するように設定する

2.手順

具体的な手順については配布ページに記載があるのでそちらを確認してください。
はげあたま.org – TwitRock TvRockのTwitter通知支援ソフト
以下では私の環境でうまくいかなった部分の設定のみ記載します。
私の環境はWindows7 32bit Homepremium、TvRock0.9u2です。

TvRockの「コマンド」画面にて起動プログラムを設定する際にフルパスで設定する
配布ページでは、TvRockと同じフォルダに保存してあることを前提にコマンド指定時にTwitRock.exeのみを指定していましたが、私の環境ではこれでは動作せず、以下のようにTwitRock.exeのフルパスを指定する必要がありました。
パスは適宜読みかえてください。

CS:"D:\tool\bin\TvRock\TwitRock.exe" "[%h]番組「%d」 録画開始" "%g"
CE:"D:\tool\bin\TvRock\TwitRock.exe" "[%h]番組「%d」 録画終了" "%g"

これ以外は特に何も問題なく運用できています。
TvRockのヘルプをみると、コマンドの実行パスはTvRockの作業フォルダとする仕様のようなので、なんとなくこれはバグっぽい気もしますね。

3.まとめ

Twitterへの通知、おそらく賛否両論あるのではないかなーと思うのですが、これは僕自身便利だと思っているから使うし、今後もおそらく使用しつづけます。
個人的にこれがなんで便利だと思っているかというと、ちゃんと録画がうまくいってるかどうか、という確認と、僕のフォロワーのタイムラインに流れることによりリマインダの機能になる、という点です。
なんとなくこういうゆるい情報共有ってTwitterっぽいよなー、と感じてなんとか使いつづけたいと思っていたのでした。
また、@hageatamaのブログにも記述があるように、Twitterをハブとして情報を共有する意味でも有用な部分があると思いますので、TvRockとTwitter両方使っている方で、今までTwitter連携を使用されていた方であれば導入を一考されてもよいのではないかと思います。
@hageatama ぐっじょぶ!

tiarraのIRClogファイルをビューワできれいにみえるようにする

0.目的

tiarraというIRCProxyを使用すると、各チャンネル毎に特定の形式のテキストファイルで発言ログを取得できます。
これをaircvwというビューワを使って、http経由できれいに見えるようにすることが目的です。

1.概要

簡単な概要は以下。

  1. tiarraのログディレクトリにaircvwを設置
  2. apacheのドキュメントルートディレクトリ直下にtiarraのログディレクトリのシンボリックリンクを作成する
  3. apacheのconfに仮想ディレクトリの設定を記述する
  4. apache再起動

ちなみに環境は、Ubuntu10.04Serverにapache2という具合です。

2.手順

1.tiarraのログディレクトリにaircvwを設置
aircvwというビューワをダウンロードします。
まずはなんとかしてビューワでみたいログのディレクトリまでたどりついてください。
tiarraのディレクトリ内にあるlogディレクトリにあります。
移動後、gitがインストールされていればgit cloneでcloneしてください。
その後、aircvwディレクトリの中身をコピーします。
以下は例です。

cd
cd tiarra/log/tatsu
git clone http://github.com/mayuki/aircvw.git
cp aircvw/* ../

gitをインストールしてない場合は以下URLにアクセスしてファイルをひとつひとつダウンロードする必要あります。
mayuki’s aircvw at master – GitHub

2.apacheのドキュメントルートディレクトリ直下にtiarraのログディレクトリのシンボリックリンクを作成する
apacheのドキュメントルート直下に該当ディレクトリのシンボリックリンクをはります。
大体は/var/www/直下になると思います。
下記は例です。
“ln -s リンク元ディレクトリ リンク先”として指定します。

cd /var/www
sudo ln -s /home/tatsu/tiarra/log/tatsu irclog
3.apacheのconfに仮想ディレクトリの設定を記述する
続いてapacheのconfファイルに仮想ディレクトリの設定を記述します。
該当ファイルは以下になります。vimやnanoなどで編集しましょう。

/etc/apache2/sites-enabled/000-default

このファイルに以下の記述を追記してください。
Aliasの項とDirectoryの項は環境に合わせて適宜変更してください。

Alias /irclog /var/www/irclog
<Directory /var/www/irclog/>
  DirectoryIndex view.sjis.html
  AddHandler cgi-script .cgi
  Options ExecCGI FollowSymLinks MultiView
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
4.apache再起動
最後に以下コマンドにてapacheを再起動します。

sudo /etc/init.d/apache2 restart

この後、該当URLにアクセスすれば、ログビューワ経由で閲覧できるはずです。
上記設定だと、http://サーバー名/irclog/というURLでアクセスできます。

最初は仮想ディレクトリを直接ログフォルダに紐つけてやろうと思ったのですが、URLにアクセスするとファイル一覧が見えてしまうとか妙な挙動をするのでシンボリックリンクをはって1クッションおいた設定にしてあります。
また、場合によってはパスワードなどかけたい場合あると思いますが、その場合はhtaccessなど使って適宜対応しましょう

vimperatorのバージョンをソース管理システムの最新版と同期できるようにした

0.目的

vimperatorとvimperator-pluginについて、いちいちバイナリやファイルをダウンロードして特定フォルダにコピーして適用、という作業がとてもめんどくさくなったので、リポジトリから最新版をおとしてきたら即適用という環境をつくるというのが目的です。

1.概要

というわけで表記のような対応をおこなったので、そのことについてまとめる。
簡単な概要は以下二点。

  • vimperatorのリポジトリからダウンロードしたものを即座にfirefoxによみこめるようにした
  • vimp-pluginをcodereposの最新版に追随できるようにした

というもの。

2.手順

以下に具体的な手順を書く。

0.前準備
自分の環境に合わせてMercurial及びSubversionをインストールする。
1.vimperatorをリポジトリの最新版を参照するように設定する
まず、vimperatorのソース管理的な最新版を入手する方法は、以下のリポジトリからhgコマンドにてcloneすればよい。
cloneする場所ですが、どこでもいいです。
私は、MacOSXを常用しておりまして、/Users/{アカウント}/Sitesディレクトリにcloneしてます。

hg clone https://vimperator-labs.googlecode.com/hg/vimperator vimperator

そののち、以下の作業を行う。

  1. Firefoxのaddonが格納されているディレクトリに移動。Macの場合以下のパス。
    "/Users/{アカウント}/Library/Application Support/Firefox/Profiles/{プロファイルディレクトリ}/extensions"
    
  2. vimperator@mozdev.orgディレクトリを削除
  3. vimperator@mozdev.orgという名前のテキストファイルを作成し上記のvimpリポジトリをcloneしたディレクトリパスを記述する。私の場合以下。
    "/Users/{アカウント}/Sites/vimperator/vimperator"
    

※これはMacの場合の設定です。Windowsの場合も相当するフォルダにて同様の作業をすればよいと思います。

2.vimp-pluginを簡単にsvnバージョンに追従させる
vimp-pluginの最新版を入手する。
こちらもvimperatorと同様に、/Users/{アカウント}/Sitesディレクトリ直下に保存。

svn co http://svn.coderepos.org/share/lang/javascript/vimperator-plugins

その後このディレクトリのプラグインを読みこむように、plugiloaderプラグインを使用する
plugiloaderのみ、~/.vimperator/pluginディレクトリに保存する。
その後、.vimperatorrcファイルに以下の変数値を指定する。

let g:plugin_loader_roots = "~/Sites/vimperator-plugins/trunk/"
let g:plugin_loader_plugins = "_libly,appendAnchor,auto_reload,copy,delicious_search,direct_bookmark,feedSomeKeys_2,gmperator,hint-tombloo,ime_controller,ldrize_cooperation,localkeymode,lookupDictionary,memo,migemized_find,migemo_completion,migemo_hint,multi_requester,nicontroller,no-reading,opener,pluginManager,sbmcommentsviewer,tombloo,twitter,walk-input,youtubeamp,zip-de-download,stella"

g:plugin_loader_rootsには、vimpプラグインが保存されているディレクトリを指定。
g:plugin_loader_pluginsには、各pluginの名前(拡張子を除いたファイル名)を指定。

ここまで設定した後、:restart、もしくはFirefoxの立ち上げ直しで再起動します。

ここまでくると、各リポジトリからチェックアウトしたディレクトリを直接参照できるようになり、適宜各バージョン管理システムのアップデートコマンドをつかえば、自動的に常用しているFirefoxでそれぞれ追随版ということになるわけです。
適宜適当なタイミングでhg pull && hg update、svn up→Firefoxを:restartなどして最新版を適用しちゃいましょう。
多少バギーな場合もあるかと思いますので、万人にはおすすめできかねる設定ですが、多少バギーでも便利に使いたい、という人にはいいと思います。

実際便利な機能の恩恵にほぼリアルタイムであずかれますのでとても幸福が実現します。
世の中トレードオフですね!

hp2133にDebian/squeezeをインストールした

ふと思いたってインストールした。

手順は非常に簡単で、netinstのCDをダウンロードして焼いた後、外付けドライブ経由でインストール、というもの。
とてもお手軽。

ここではインストールとその後の使用で少し困ったことをまとめておく。

1.インストール時
途中、二度ほどエラー。

bootパーティションがよみこめない
一度目はパーティション作成時に、途中で何故かbootパーティションが読めなくなる、というもの。
エラー原因がよくわからなかったので再度最初からインストール。
この時には特に問題も発生せず。なんだったんだろう?
FTPサーバーのエラー
二度目のエラー。今度はパッケージマネージャが参照するFTPサーバーを選択するステップで、どのサーバーを選んでもエラーになった。
これも原因不明だったので再度はじめからインストール。これでうまくいった。条件が不明でかなり謎。

その後は特に問題もなくインストールでき、正常にXも立ち上がる。解像度なども特にいじることがなかったのでとても簡単。
しかし、なぜかシステムフォントが巨大化するという現象が発生。解像度認識は正しそうなので、よくわからない。
しかも、何度かログアウトを繰り返したりしていると正しく認識されたりするため、さらに混迷を深める事態に。
この件についてはまだ明確な原因は不明確だが、ログインセッションのテーマを変えることで正常に認識されるようになったようにみえる。
ちなみにウインドウマネージャをXfceに変えたりしても特に問題は改善しなかった。
根本対応ができているか不明な状況なので、とりあえずしばらく様子見。

2.インストール後
音がでない
この件はミキサーで項目選択して設定してあげればきちんと動いた。
ただ、起動時にALSAドライバが警告を吐いてるようなので、後で調査してみる。
Flashのインストール
Adobe公式ではどうもライブラリファイルの提供しかしてくれないようで、nonfreeのdebをDebian公式からおとしてきてインストールした。
手順は、以下のURLからdebパッケージをダウンロード。
Debian — squeeze の flashplugin-nonfree パッケージに関する詳細
次に以下のコマンドを実行

dpkg -i flashplugin-nonfree_2.8_i386.deb
無線LANドライバのインストール
以下の手順にのっとり、別途インストールする。
wl – Debian Wiki

インストールした後はそのままだと起動しなおす度に毎回”modprob wl”しないといけないので、/etc/modulesにwlを追記する。

とりあえずこんなとこです。

自宅物理サーバーのESXi化手順を考える

今、家にはDELLのSC440があって、これをESXi化したいなーと常々思っていた。
こいつには今Debian/etchがインストールされてるんだけども、バージョンとしても古いし、アップグレードしたいという頭もあって、どうせなら同時にやってしまいたい。
とはいえこいつ上で動いているいくつかのサービスがあって、アップグレード中も稼動させられるようにしたい。何らかの形で。

ということを踏まえて以下のような手順を検討してみる。

  1. Mac mini上のVMWareFusionにDebian/lennyをセットアップし、今物理サーバーで動いているサービスを稼動させ、環境をスライドさせる。
  2. 物理サーバーは完全にフォーマット→ESXiをインストール
  3. VMWareFusionで稼動している仮想マシンをESXiに移植

もしくは

  1. Mac mini上のVMWareFusionにDebian/lennyをセットアップし、今物理サーバーで動いているサービスを稼動させ、環境をスライドさせる。
  2. 物理サーバーで動いているDebian/etchをClonezillaでイメージ化し、VMWareFusionに移植
  3. 物理サーバーのESXi化
  4. VMWareFusionで稼動している仮想マシンをESXiに移植

いずれにしろいくつかのポイントで検証が必要そう。
ただ、物理サーバーの仮想化には非常に興味があるので、やるなら後者の手順もありかな。
前者はもう今の環境を完全に捨てさるイメージ。後者は今の環境をいかしつつ仮想化するイメージ。
また、上記手順だとどうしても多少は停止時間がでるんだけど、まあ個人用途だしそこまでシビアに考えていないのでよしとしています。

Mac mini上のVMWareFusion2.0.6にDebian/lennyをインストールした

タイトルの通り、ちょっと諸事情でVMWareFusion上にlennyをセットアップしたのでその記録。
目的は今の物理サーバーで稼動しているetchと同様の環境を構築するための手順の確認とインストールアプリの記録を取ることです。
せっかくなのでブログのエントリとしてまとめてみます。
時系列に思いついた感じでセットアップしているので、順番はかなり適当です。

1.仮想マシンの作成
Linuxのカーネルバージョンを適当に2.6にしてインストール
2.lennyのインストール
  • インストールは最小構成(標準パッケージ)のみを実施
  • sshのインストール
    /etc/ssh/sshd_config編集
    とりあえずrootログイン禁止
  • svnのインストール
  • git-coreのインストール
  • unzipのインストール
  • zshのインストール
  • mercurialのインストール
  • bitbucketのリポジトリから自分用のdotファイル類をダウンロード
  • chsh -s /bin/zsh でユーザーのログインシェル変更
  • bzipのインストール
  • gccのインストール
  • sudoのインストール
    以下を参考に設定
    Debian GNU/Linux 5.0(lenny) の設定
  • makeのインストール
  • mono2.4のソースをダウンロードしてmake
    以下./configureでたりなかったもの
    bisonのインストール
    gettextのインストール
    pkg-configのインストール
    libglib2.0-devのインストール
  • plaggerのインストール
    まずはsvnでcoする。gitでもいい。

    svn co http://svn.bulknews.net/repos/plagger/trunk/plagger
    

    perl Makefile.plで謎のエラーが発生。ひとまず放置。
    ./plagger -vってやってエラーがでたモジュールをインストール。
    どうも、YAMLがはいってなかったのでエラーになったっぽい?

    あとはperl Makefile.plがまともに動いてくれるので、足りないモジュールをcpanでインストールする

    XML::Atomのインストールで苦戦
    とりあえずlibxml2とlibxml2-devをインストールしたがだめ。
    以下二つのモジュールをインストールすればうまくいった。
    i libxml-atom-perl
    i libxml-atom-service-perl

    XML::Feedもうまくはいらない。テストでこける。
    libxml-feed-perlをいれてみたがだめ
    g++をインストール
    libxml-feedpp-perlもいれてみたがだめ

    ./plagge -vするとDateTime::Format::Strptimeがたりないようなのでcpanでインストール

    これでもXML::Feedがうまくはいらないのであきらめてforceインストール
    とりあえず./plagger -vで起動した。

  • tiarraのインストール
    svn co http://svn.coderepos.org/share/lang/perl/tiarra/trunk/ tiarra
    
  • bitlbeeのインストール
  • apache2のインストール

tiarraからim.kayac.com経由でiPhoneにキーワードヒットをプッシュする

こないだIRCで教えてもらったので備忘録的に手順をメモ。
これを導入するまでは自宅のMac miniを起動しっぱなしにしてGrowl→Prowlへ連携していたのですが、なんだかスマートじゃなかったのでこちらの方法にのりかえました。
元々tiarraは使ってましたし。

簡単に手順をまとめるとこうなります。

  1. tiarraを最新版にする
  2. im.kayac.comに登録する
  3. iPhoneのim.kayac.comアプリをダウンロードしして設定する
  4. tiarraのAuto::Imを有効にして設定する

1.tiarraを最新版にする
これはCodereposから最新版をダウンロードしましょう。
tiarraの導入については別途Google先生などに質問しましょう。
基本的にははじめて導入する場合は、CodeReposからチェックアウトしてconfigをごにょごにょしましょう。

svn co http://svn.coderepos.org/share/lang/perl/tiarra/trunk/ tiarra

既に導入済の場合は、svn upなどして最新版にアップすると幸せになれます。

2.im.kayac.comに登録する。
以下のURLにアクセスし、サインアップしましょう。


http://im.kayac.com/

今のところサインアップだけなら無料のようです。
iPhoneへのプッシュだけではなく、GoogleTalk、Jabberへの通知もできるようです。
私は通知の二重化のためにGoogleTalkにも通知するように設定しました。

3.iPhoneのim.kayac.comアプリをダウンロードして設定する
2.でサインアップしたら、その後はiPhoneアプリのダウンロードです。
im.kayac.comにログインすると、iPhoneの通知設定を行う画面でiTunesのリンクがありますので、そのまま購入もできます。
こちらは230円と有料のアプリにはなっていますが、このような通知の仕組みを検討しているNotiferJunkyな方であれば特に抵抗もなく購入できるのではないでしょうか。
同じような通知アプリであるProwlよりは若干安いです。
設定は簡単で、im.kayac.comにログインする際のユーザー・パスワードを入力するだけでOKです。
4.tiarraのAuto::Imを有効にする
こちらはtiarraのconfファイルにて有効にする設定を追記しましょう。
単純ですが、私は以下のように設定しています。
基本的には以下のtiarraのドキュメントを読めばすぐに理解できるかと思います。
Auto 関係のモジュール – Tiarra Documentation

+ Auto::Im {
mask: #Twitter|t *!*@*
mask: *|irc_wide *!*@*
regex-keyword:xxx
format: #(date:%H:%M:%S) [#(channel):#(nick.now)] #(text)
user: xxx
password: xxx
 }

mask
maskは反応するチャンネル及びサーバー、誰の発言かを指定。
私の場合パイプをチャンネルセパレータとして使っているので、#Twitterがチャンネル、tがサーバーとなります。tはTIGです。
また複数のマスクを指定する場合は、上記のように並列に記述します。
regex-keyword
regex-keywordは通知したいキーワードを正規表現で指定します。
format
formatは通知する内容のフォーマットを指定します。
user,password
userとpasswordはim.kayac.comにログインするためのユーザーおよびパスワードを指定してください。
ここまでconfigを設定したら、あとはtiarraのconfをReloadするなりして読み込みなおしましょう。
すると、tiarraからim.kayac.comへの通知がおこなわれるようになるはずです。

tiarraから直接通知できる、というのは大変すばらしいのですが、どうもim.kayac.comが503エラーになる頻度が高いように思います。
もうちょっと安定してくれるとありがたいかなー、というのが所感です。

Port(正確にはMacPorts)のTips

最近急に使いはじめたので、整理という意味でまとめ。
なんかあればこのエントリに適宜追加していきます。

インストールできるパッケージをさがす
port search hogehoge

これで”hogehoge”を含むパッケージの一覧を確認可能。

/Users/tatsu% port search vim
ctags @5.7 (devel)
    Reimplementation of ctags(1)

hs-plugins @20050407 (devel)
        A plugin library for Haskell

MacVim @7.2.snapshot45 (editors)
    MacVim is a GUI version of vim for Mac OS X

p5-text-vimcolor @0.11 (perl)
        syntax color text in HTML or XML using Vim.

txt2regex @0.8 (sysutils)
    Converts human sentences to regexes

vim @7.2.182 (editors)
        Vi "workalike" with many additional features

vim-app @7.2.147 (editors)
    Vim.app is a GUI version of the famous editor vim.

vim-app @7.2.182 (editors)
        Vim.app is a GUI version of the famous editor vim.

vim2html @1.46 (textproc)
    vim2html converts any Vim-editable file into well-formed HTML

yi @0.1.0 (editors)
        the extensible Yi text editor

Found 10 ports.
パッケージインストール時に指定できるオプションを確認する。
port variants hogehoge

これで”hogehoge”に指定できるオプションの一覧を確認可能。
例えばこうなります。

/Users/tatsu% port variants vim
vim has the variants:
        athena: Build GUI version using Athena widgets
        gtk1: Build GUI version using GTK 1.x widgets
        gtk2: Build GUI version using GTK 2.x widgets
        motif: Build GUI version with Motif widgets
        tiny: Build tiny feature set
        small: Build small feature set
        big: Build big feature set
        huge: Build huge feature set
        xim: Build with support for X Input Method
        perl: Enable Perl scripting
        python: Compatibility variant, requires +python25
        python25: Enable Python scripting
        python26: Enable Python scripting
        ruby: Enable Ruby scripting
        tcl: Enable Tcl scripting
        cscope: Enable source code browsing with cscope
        nls: National Language Support
        puredarwin: Platform variant, do not select manually
        universal: Build for multiple architectures
portでインストールする場合、オプションを変えてインストールすると別のパッケージのように認識される。
portの場合オプションを変えて”port install”すると、別のパッケージとして認識されるよう。
複数のオプションを変更したパッケージをそれぞれ同時に使うことはできず、複数のものがインストールされている場合、一つをactivateする必要がある。
インストールされているパッケージの一覧は、”port installed”で確認できる。
まずはインストールされてるパッケージの一覧。

/Users/tatsu% port installed vim
The following ports are currently installed:
  vim @7.2.160_0+huge
  vim @7.2.182_0
  vim @7.2.182_0+huge
  vim @7.2.182_0+huge+motif
  vim @7.2.182_0+huge+perl+ruby (active)

ここからさらに別のオプションをつけてインストールしたい場合は、以下のような流れで行う。
まず、現在activeになっているパッケージをdeactivateする。
この際、さきほどの”installed”で確認した完全名で指定する必要がある。

sudo port deactivate hogehoge @1.0.0+hoge

この後、

sudo port install hogehoge +hogehoge

とすればよい。

Macのvimで憂いなくqfixhowmを使えるようにする

0.前提

Mac標準のvimのバージョンは7.2.22。
ただこれだとvimですごく便利なqfixhowm使えないという大変切ない事態におちいります。
※正確には起動できなくはないのですが、autochdirが不正なオプションです、みたいなエラーが大量にでてとてもじゃないですが使いものになりません。
なんかMacだけで使えないのはすごく悔しいので、なんとかして使うための方法を模索してみました。

1.問題点と対処の要旨

どうもMacの標準vimは色々とオプションが無効になってるっぽい。
であれば有効になっているvimをインストールしてみよう、というわけで、MacPortsからインストールする、という手段をとりました。
MacPortsのvimは多少バージョンが低いのですが、私はそこを気にするほど使いこんでるわけでもないので、とりあえずはよしとしてます。
そんなことありませんでした。MacPortsの方がバージョン(というかパッチ数)は上です。
なぜかMacPortsの方を7.1.182だと勘違いしてました…。

  • Mac標準vim:7.2.22
  • MacPortsvim:7.2.182

2.環境

まず、適当にMacPortsをインストールしておいてください。
また、基本ターミナル経由での作業になるので、Teminal.appあたりを起動しておきましょう。
念のため、”sudo port selfupdate”あたりやっとくといい感じかもしれません。

3.対処

Terminalにて以下のコマンドを入力し、vimの最新版をいれてみる。

sudo port install vim +huge

ここでのポイントは”vim +huge”。
+hugeを指定してあげないと、先程あげたオプション(autochdirなどなど)が有効にならないので必須です。
このインストール時に別のパッケージがactiveになっててダメだよ!みたいなエラーが出たら、既に別のvimをインストールしてます。
なので、次のリファレンスを参考に、+hugeではないパッケージをdeactivateしましょう。
sudo port upgrade vim-app – basyura’s blog

で、これだけではvimってコマンドを打っても最新版の7.2.22が起動してしまいます。
この状況でも実はportでインストールしたvimもちゃんとインストールされてるんですが、標準で入っているvimの方が優先されてる状況なんですね。
それじゃあどうすればいいかというと、シェルのエイリアスとしてportでインストールしたvimを指定すれば、単にvimとTerminalで打ち込んだ場合にそちらが起動するようになります。
具体的には、portでインストールされたvimのパスは”/opt/local/bin/vim”になるので、

vim = '/opt/local/bin/vim'

とすれば、ログインしなおすなり、シェルのrcファイルを読み込みなおしなどすれば、vimとして起動した際にportでインストールされたvimが起動されるはずです。
この状況であれば特になんのエラーも出ることなくqfixhowmが使えますので大変幸せになれます。
おめでとうございます。ありがとうございます。

4.まとめ

  • Mac標準のvimはオプションが色々無効になってるっぽい
  • いろいろやりたければportから落してくるのが手っ取り早い
  • portでインストールしたvimを気にせず使えるようにするには、シェルのrcファイルにエイリアスとして登録すればOK

5.最後に

もしMac標準のvimで対応方法があったら教えてください!

Home

Search
Feeds
Meta

Return to page top