RSS

カテゴリー別アーカイブ: mac

gitoriousをMacにインストールする

gitoriousは、githubクローンでなかなかよくできているのですが、いかんせんインストールがなかなか大変。

Macへのインストールにいたっては、ほとんど情報もなくそれなりに苦労したのでメモ。

この記事自体や設定ファイルなどを https://github.com/kmr/gitorious_mac_install にも置いてます。

ユーザの作成

gitユーザを作ります。

一般ユーザで普通にユーザ追加してください。

gitユーザでssh接続できるように、共有設定なども確認します。

gitユーザ環境周りの設定として以下のファイルを作成、記述します。

  • ~/.bashrc
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
  • ~/.bash_profile
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi

.profile を .bashrc のシンボリックリンクとして作成しておきます。

git% ln -s /Users/git/.bash_profile .profile

ssh設定のディレクトリを作成して、そこに environment というファイルを作成します。

git% mkdir .ssh
git% chmod 700 .ssh
  • .ssh/environment
PATH=/Users/git/contents/gitorious/script:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/bin:/sbin

パーミッションを変えておきます。

git% chmod 644 ~/.ssh/environment

sshd の設定

ssh経由のpushのためsshdの設定をします。

  • /etc/sshd_config
PermitUserEnvironment yes (コメントを削除し、yesに設定)

パッケージ群のインストール

必要なパッケージ群をインストールします。

自分は、macports を使っているのですが、最近はいろいろあるので適当に読み変えてください。

あと、rubyパッケージをrubygemsでインストールします。

gem系パッケージは、結構バージョンにうるさいので、エラーとかでバージョンが違うと言われたら素直にそのバージョンをインストールしてあげてください。

% sudo port -v install apache2 +openldap+preforkmpm
% sudo port -v install mysql5-server
% sudo port -v install pcre
% sudo port -v install oniguruma5
% sudo port -v install apg
% sudo port -v install libgeoip
% sudo port -v install libyaml
% sudo port -v install php5
% sudo port -v install phpmyadmin
% sudo port -v install memcached +umem
% sudo port load memcached
% sudo port -v install ImageMagick +graphviz+jbig+jpeg2+lqr+mpeg+perl+q32+rsvg+wmf
% sudo port -v install sphinx +mysql5
% sudo port -v install git-core
% sudo gem install -b --no-ri --no-rdoc bluecloth -V
% sudo gem install -b --no-ri --no-rdoc openid -V
% sudo gem install -b --no-ri --no-rdoc mime-types -V
% sudo gem install -b --no-ri --no-rdoc diff-lcs -V
% sudo gem install -b --no-ri --no-rdoc json -V
% sudo gem install -b --no-ri --no-rdoc ruby-mysql -V
% sudo gem install -b --no-ri --no-rdoc mysql -V
% sudo gem install -b --no-ri --no-rdoc rack -V
% sudo gem install -b --no-ri --no-rdoc ruby-hmac -V
% sudo gem install -b --no-ri --no-rdoc echoe -V
% sudo gem install -b --no-ri --no-rdoc daemons -V
% sudo gem install -b --no-ri --no-rdoc ruby-yadis
% sudo gem install -b --no-ri --no-rdoc hoe
% sudo gem install -b --no-ri --no-rdoc stompserver -V
% sudo gem install -b --no-ri --no-rdoc chronic -V
% sudo gem install -b --no-ri --no-rdoc rails -v '2.3.11' -V
% sudo gem install -b --no-ri --no-rdoc  rdiscount -V
% sudo gem install -b --no-ri --no-rdoc stomp -V
% sudo gem install -b --no-ri --no-rdoc geoip -v '0.8.9' -V
% sudo gem install -b --no-ri --no-rdoc bundler -V
% sudo gem install -b --no-ri --no-rdoc rmagick -V
% sudo gem install -b --no-ri --no-rdoc daemons -v '1.1.0' -V
% sudo gem install -b --no-ri --no-rdoc rubygems-update -v '1.3.6' -V
% sudo update_rubygems _1.3.6_

ActiveMQのインストール

ActiveMQは、ここから最新版をダウンロード、解凍インストールします。

http://activemq.apache.org/download.html

ここでは、/opt/local/activemq に解凍したとします。

以下のように設定ファイル、起動スクリプトを一部変更します。

  • /opt/local/activemq/conf/activemq.xml
...
<transportConnectors>
<transportConnector name="localhost" uri="tcp://127.0.0.1:61616"/>
</transportConnectors>
  • /opt/local/activemq/bin/macosx/activemq

スクリプトの頭に以下のエントリを追加します。

これは Java関係の環境変数を設定するためです。

# Setup JAVA
. /opt/local/.java_env

上で読み込んでる .java_env を作成します。

  • /opt/local/.java_env
# Setting Java environment
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
export PATH=${JAVA_HOME}/bin:${ANT_HOME}/bin:${MAVEN_HOME}/bin:${PATH}

あと、ActiveMQ実行ユーザをgitユーザと同じように作っておきます。

MySQLの設定

MySQLにgitorious用のDBとユーザを作成します。

gitorious公式のセットアップではrootユーザを使うように書いてありますが、変えた方がいいです。

% mysql -u root -p
rootユーザのパスワード入力
mysql> create database redmine character set utf8;
mysql> create user 'gitorious(変えてもいい)'@'localhost' identified by '適当なパスワード';
mysql> grant all privileges on gitorious.* to 'gitorious'@'localhost';
mysql> quit;

gitorious本体の設定

gitorious本体をチェックアウトしていろいろ設定します。

この辺から、いろいろエラーが発生したり苦労するかもしれません。

まず、gitorious のリポジトリから gitorious のコードをクローンしてきます。

/opt/local/gitorious にインストールすることにします。

% git clone git://gitorious.org/gitorious/mainline.git gitorious
% cp -pr gitorious /opt/local/
% sudo chown -R apache:staff /opt/local/gitorious
% sudo chown -R git:staff /opt/local/gitorious/script
% sudo chmod 777 /opt/local/gitorious/log
% sudo chmod 777 /opt/local/gitorious/tmp/pids
% sudo mkdir /Users/git/git-repos
% sudo chown /Users/git/git-repos
% sudo mkdir -p /Users/git/tmp/tarballs-work
% sudo mkdir -p /Users/git/tmp/tarballs-cache
% sudo chown -R /Users/git/tmp

chown でオーナ指定している apache:staff は、Apache の起動ユーザなので、各環境の設定に合わせて変えてください。

いくつかの設定ファイルを自分の環境、使い方に合わせて設定します。

設定するファイルは、/opt/local/gitorious/config以下にあるサンプルファイルをコピーして使います。

% cd /opt/local/gitorious/config
% sudo cp -p broker.example.yml broker.yml
% sudo cp -p gitorious.sample.yml gitorious.yml
% sudo cp -p database.sample.yml database.yml

以下でランダム文字列を設定する必要がありますので、事前に以下のコマンドを実行して出力される文字列をコピーしておきます。

改行は削除して1行にしてください。

% apg -m 64
uvnu.....
.....non_

  • /opt/local/gitorious/config/gitorious.yml

production:
# The session secret key (`apg -m 64` is always useful for this kinda stuff)
cookie_secret: uvnu.....non_ (上で作ったやつ)
# The path where git repositories are stored. The actual (bare) repositories resides
# in repository_base_path/#{project.slug}/#{repository.name}.git/:
repository_base_path: "/Users/git/git-repos"
# Stuff that's in the html <head>. custom stats javascript code etc
extra_html_head_data:
# System message that will appear on all pages if present
system_message:
# Port the ./script/gitorious script should use:
gitorious_client_port: 80
# Host the ./script/gitorious script should use:
gitorious_client_host: github.example.com (このgitoriousを運用するサーバのDNS登録名)
# Host which is serving the gitorious app, eg "gitorious.org"
gitorious_host: github.example.com (このgitoriousを運用するサーバのDNS登録名)
# User which is running git daemon
gitorious_user: git
# Email address to the support for the Gitorious server
gitorious_support_email: gitorious@example.com (サポートメールアドレス)
# Email spam on server errors to:
exception_notification_emails:
# Mangle visible e-mail addresses (spam protection)
mangle_email_addresses: true
# Enable or Disable Public Mode (true) or Private Mode (false)
public_mode: false (これをfalseにすると新規ユーザ追加できなくなる)
# Define your locale
locale: en
# Where should we store generated tarballs?
# (should be readable by webserver, since we tell it to send the file using X-Sendfile)
archive_cache_dir: "/Users/git/tmp/tarballs-cache"
# Which directory should we work in when we generate tarballs, before moving 
# them to the above dir?
archive_work_dir: "/Users/git/tmp/tarballs-work"
# is it only site admins who can create new projects?
only_site_admins_can_create_projects: false
# Should we hide HTTP clone urls?
hide_http_clone_urls: false
# Use SSL? Requires web server configuration. Recommended for security. Forces the use of
# HTTPS on login page and all pages while user is logged in
use_ssl: true
# Is this gitorious.org? Read: should we have a very flashy homepage?
is_gitorious_dot_org: false
# Pick a default license
#default_license: GNU Affero General Public License (AGPLv3)

  • database.yml

# MySQL (default setup).  Versions 4.1 and 5.0 are recommended.
#
# Install the MySQL driver:
#   gem install mysql
# On MacOS X:
#   gem install mysql -- --include=/usr/local/lib
# On Windows:
#   gem install mysql
#       Choose the win32 build.
#       Install MySQL and put its /bin directory on your path.
#
# And be sure to use new-style password hashing:
#   http://dev.mysql.com/doc/refman/5.0/en/old-client.html
production:
adapter: mysql
database: gitorious
username: gitorious
password: MySQLの設定で指定したgitoriousユーザのパスワード
host: localhost
encoding: utf8

  • broker.yml

そのままでOK。

bundlerを使って不足パッケージチェック、インストールします。

ここで、バージョンが違うというエラーが出たら、指定されたバージョンのgemパッケージをインストールしてください。

% cd /opt/local/gitorious
% sudo bundle install

最後に、データベースを初期化、管理者ユーザの作成など。

git% rake db:create RAILS_ENV=production
git% rake db:setup RAILS_ENV=production
git% rake ultrasphinx:bootstrap RAILS_ENV=production
git% RAILS_ENV=production script/create_admin
管理者ユーザのe-mailとパスワードを聞かれるので入力
git% crontab -e
* * * * * . ~/.bashrc && /opt/local/gitorious && rake ultrasphinx:index RAILS_ENV=production

Apacheの設定

まずは、passengerモジュールをインストール。

今回は、macportsでインストールしたApacheを使うので、オプションを指定します。

# sudo /opt/local/bin/passenger-install-apache2-module --apxs2-path /opt/local/apache2/bin/apxs --apr-config-path /opt/local/bin/apr-1-config

Apacheは、VirtualHostを作成します。

つまり専用のサーバ名を与えます。

当然、この名前で名前解決できる必要があります。

LoadModule passenger_module /opt/local/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /opt/local/lib/ruby/gems/1.8/gems/passenger-3.0.7
PassengerRuby /opt/local/bin/ruby
<VirtualHost *:80>
ServerName github.example.com (gitorious.ymlのgitorious_hostと合わせる)
DocumentRoot /opt/local/gitorious/public
<Directory "/opt/local/gitorious/public" >
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName github.example.com (gitorious.ymlのgitorious_hostと合わせる)
DocumentRoot /opt/local/gitorious/public
ServerAdmin admin@example.com
ErrorLog "/opt/local/apache2/logs/error_log"
TransferLog "/opt/local/apache2/logs/access_log"
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "/opt/local/apache2/conf/github.example.com.cert.pem" (SSLサーバ鍵についてはググればいっぱい出てきます)
SSLCertificateKeyFile "/opt/local/apache2/conf/github.example.com.key.pem"
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "/opt/local/apache2/logs/ssl_request_log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
<Directory "/opt/local/gitorious/public" >
Order deny,allow
Allow from all
</Directory>
</VirtualHost>

自動起動設定

自動起動の設定方法はいろいろありますが、個人的に一番分かりやすいmacports系デーモンのまねで設定します。

起動スクリプトなどは、/opt/local/etc/LaunchDaemon 以下の作成します。

スクリプトは、github に置いておきますので参考にしてください。

これらのスクリプトをMac起動時に起動するよう設定します。

% sudo ln -s /opt/local/etc/LaunchDaemon/org.macports.activemq.plist /Library/LaunchDaemons/org.macports.activemq.plist
% sudo ln -s /opt/local/etc/LaunchDaemon/org.macports.stompserver.plist /Library/LaunchDaemons/org.macports.stompserver.plist
% sudo ln -s /opt/local/etc/LaunchDaemon/org.macports.git-daemon.plist /Library/LaunchDaemons/org.macports.git-daemon.plist
% sudo ln -s /opt/local/etc/LaunchDaemon/org.macports.git-poller.plist /Library/LaunchDaemons/org.macports.git-poller.plist
% sudo ln -s /opt/local/etc/LaunchDaemon/org.macports.git-ultrasphinx.plist /Library/LaunchDaemons/org.macports.git-ultrasphinx.plist
% sudo launchctl load -w /Library/LaunchDaemons/org.macports.activemq.plist
% sudo launchctl load -w /Library/LaunchDaemons/org.macports.stompserver.plist
% sudo launchctl load -w /Library/LaunchDaemons/org.macports.git-daemon.plist
% sudo launchctl load -w /Library/LaunchDaemons/org.macports.git-poller.plist
% sudo launchctl load -w /Library/LaunchDaemons/org.macports.git-ultrasphinx.plist

これで、https://github.example.com/ にアクセスして管理者ユーザでログインしたり、ユーザ登録したり、プロジェクト、リポジトリ作ったり、push、pullしたりして問題なければOK。

途中、うまく動かなくて『あーもー』となってメモ取るの忘れた部分もあるかもしれませんが、その時はコメントか github のメモ修正してください。

広告
 
コメントする

投稿者: : 2011/05/05 投稿先 mac

 

MacのバックアップをNASに作るTip

ふと思いたって今迄サーバとして使っているMacbookに刺していた外付けディスクを、Airmac ExtremeのUSBに刺してサーバ落としてもメインのマシンとかからアクセスできるようにしました。

ついでなんで、バックアップに使っているディスクもAirmacに繋いだのですが、どうもアクセス権とかのバックアップまでされない。

それは困るなあと思っていたのですが、最終的にディスクイメージを作ってそれをマウントして使う方法で解決しました。

やることは簡単で、スパースバンドルという形式のディスクイメージを作って、そいつをマウントして使うだけ。

スパースバンドルは、ディスクユーティリティの 新規 > 空のディスクイメージ で作成します。

こんな感じ。

f:id:clover-leaf:20110420232612p:image

ポイントは、パーティションをハードディスク、イメージフォーマットをスパースバンドル・ディスクイメージにした上で、サイズにバックアップに使うディスクのサイズ以下を指定すること。

ディスクのサイズは後で変更できるので、とりあえずバックアップ対象より少し多めにしておく、とかでも大丈夫。

また、ここで1Tと設定したからといって実際に1Tのディスクイメージファイルが作成されるわけではなく、最初は数十から数百メガのファイルで、ディスクイメージ内にデータが書きこまれるにつれサイズが大きくなっていきます。

要するに、最初は、1Tの容量のハードディスクですよ、という情報が入ったファイルが作成されるだけです。

サイズの変更は、作成したディスクイメージをマウントしていない状態で、ディスクユーティリティの イメージのサイズを変更 によってサイズ拡張、その後ディスクイメージをマウント(実行するとマウントされます)して、パーティションのタブを選んでパーティション拡張してあげればOK。

簡単。

こうして作成したディスクイメージをバックアップに使う外付けドライブに移動して、マウント、バックアップ先ディスクとして使えば普通のローカルドライブとして使えてアクセス権なども問題なくバックアップされます。

あまり知られていないけど、結構便利です。

 
コメントする

投稿者: : 2011/04/20 投稿先 mac

 

Macをメディアサーバ化するPlexのススメ

f:id:clover-leaf:20110402003342p:image:w300

英語blogに以前書いたのですが、MacのFrontRowの強化版のようなアプリにPlexというものがあります。

iTunesのライブラリや、ディレクトリから音楽ファイルやらムービーファイルを検出してライブラリ化して見ることができます。

メニュー構成とかがとてもカッコよくて、それだけでも使いたくなります。

更に、プラグインを追加することによって、Youtubeなど、様々なネット動画サービスに接続できるようになり機能的にも FrontRow よりずっと優れています。

こんな感じでずらっと。

f:id:clover-leaf:20110402003343p:image:w300

しばらく更新がなかったのですが、今年に入ってアップデートがあり少し問題があった品質面でもかなり安定してきました。

この間 MacbookPro を買って空いた Macbook を、メディアサーバとして再構築しDVI-HDMI変換ケーブルでTVに接続しています。

前からメディアサーバは立てていましたが、ずっと昔の Mac だったので、不安定でちょっと使いづらかったのですが、これでようやく安定しました。

オススメの使い方は、音楽はPlexが勝手に認識してくれるiTunesライブラリをそのまま使う、ムービーはディレクトリ指定してスキャナで取り込むパターンです。

自分は、ムービーもiTunesライブラリとして取り込んでいるので、iTunesライブラリとして認識してくれることを期待したのですが、どうもダメっぽいです。

ということで、ディレクトリ指定でiTunesライブラリのMoviesフォルダを取り込むのですが、単なるムービーとして取り込むとアニメのシリーズとか関係なくフラットにメニューに並ぶようになってしまいます。

丁度、FrontRowと同じ状態で、数が多いとちょっとサーチするのキツい。

それを回避しようと思うと、TV Showsとして取り込む手段があります。

TV Showsは、シリーズとかをメニューとして整理してくれて、階層的に作品を管理できるようになります。

ただ、Plex標準のTV Showsのスキャナだと、iTunesのムービーの設定のうち『ビデオ』に該当する番組情報とか埋めてないと認識してくれません。しかも、シーズン番号とかエピソード番号とか入れてないと無視されます。

自分は、そもそも番組情報を入れず、音楽ファイルと同様の情報しか入れていません。

iTunesのムービーの設定のうち『情報』に該当するやつですね。

これ。

f:id:clover-leaf:20110402003344p:image:w300

これじゃそのまま使えねー、ということでスキャナを書きました。

ソースはこんな感じ。

これを、~/Library/Application Support/Plex Media Server/Scanners/Series/Simple Series Scanner.py に保存しておいてやると、Plex Media Server のツールである Plex Media Manager のライブラリ追加で Media scanner として Simple Series Scanner が使えるようになります。

こいつを選択して、Section type に、TV Shows、Primary metadata agent に Personal Media Shows あたりを選択しておいてやると、上で書いたiTunesのムービーの設定のうち『情報』を元に、アルバム情報とかからシリーズ構成を作成してくれるはずです。

また、エピソード番号にあたるトラック番号とかが入力されていなくても、適当な番号でごまかして取り込みます。

こんな感じで、アルバムで整理され、

f:id:clover-leaf:20110402003345p:image:w300

ドリルダウンすると、ちゃんと同じアルバムのムービーが並びます。

f:id:clover-leaf:20110402003346p:image:w300

ちょっと適当な整理だけど、自分には十分使いやすくなりました。

Plexは、マジオススメなんで、ぜひ使ってみて。

 
コメントする

投稿者: : 2011/04/01 投稿先 mac

 

MacBook Pro early 2011 を買いました

f:id:clover-leaf:20110320213017p:image

そういや地震ですっかり飛んでいましたが、メインのMacBookを買い替えたのでした。

今まで使っていたものは、おおよそ3年ものでメモリも4Gまでということで、丁度いい時期かなと思い。

ここ数年はずっとメインマシンをノートにしていて、不自由したことはないのですがこの間まで使っていた13インチはちょっと外でコード書いたりするには画面がちっちゃいと感じていました。

自分はそんなに長距離持ち運ぶということがないので、重さより作業のしやすさを取ろうということで再び15インチに戻しました。

というわけで買ったのは、こんな構成。

MBP 15.4/CTO

2.2GHz Quad-core Intel Core i7

4GB 1333MHz DDR3 SDRAM – 2x2GB (これは購入後8Gにリプレースした)

256GB Solid State Drive

8x Double-Layer SuperDrive

MBP 15″HR Antiglare WS Display

Mini DisplayPort-DVI Adapter

No iWork preinstalled

No Final Cut Express preinstd

No Aperture Preinstalled

No Logic Express Preinstalled

No FileMaker Preinstalled

No MSO preinstalled

US Keyboard/Users Guide-JPA

Country Kit-JPN

OS自体の起動、アプリの起動、Android エミュの起動などがすごく速くなって、ストレスはほぼなし。

AdobeCS5とか以外は、ほぼDockで1ポップ以内で起動します。

これは、CPUよりはSSDの威力なんだろうなあ。

素晴しい。

ビデオメモリも1Gなので、動画編集なんかもサクサクいけるはず。

とりあえず3年はがんばってくれると信じている。

 
2件のコメント

投稿者: : 2011/03/20 投稿先 mac

 

MacBook (Late 2008) + MacOSX 10.6.5 を 64bit で起動する

なんか一部アプリが動かなくなったな、と思って調べてみたら、この間リリースされた MacOSX 10.6.5 で久々に EFI が更新されていた。

MacBook (Late 2008) は、64bit CPU 乗せてるくせして、Macbook Pro と差別化するため 64bit で起動しないよう細工されてます。

F○ck Apple!

で、その小細工に小細工を施して 64bit で起動できるわけですが、MacOSX 10.6.5 で小細工が修復されてしまいました。

というわけで、小細工しなおしました。

以前のポストで書いた内容から変わっています。

更新する boot.efi が更新されてしまったから。

MacOSX 10.6.5 では、以下のアドレスの値を修正します。

これが元の boot.efi

  • /System/Library/CoreServices/boot.efi

0028700 60 42 02 00 00 00 00 00 00 00 00 00 00 00 00 00

0028710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

0028720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

0028730 68 42 02 00 00 00 00 00 00 00 00 00 00 00 00 00

0028740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

これを別名で、以下の6箇所書き替える。

  • /System/Library/CoreServices/boot64.efi

0028700 60 42 02 00 00 00 00 00 04 00 00 00 01 00 00 00

0028710 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

0028720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

0028730 68 42 02 00 00 00 00 00 04 00 00 00 01 00 00 00

0028740 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

あとは、以下のようにして boot64.efi で起動するように設定。

# cd /System/Library/CoreServices/

# sudo chown root:wheel boot64.efi

# sudo chflags uchg boot64.efi

# sudo bless –folder /System/Library/CoreServices/ \

–file /System/Library/CoreServices/boot64.efi

  • /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

以下のエントリを追加。

<key>Kernel Flags</key>

<string>arch=x86_64</string>

これで再起動すれば 64bit カーネルで上がります。

なお、例によって自己責任でどうぞ。

 
2件のコメント

投稿者: : 2010/11/23 投稿先 apple, mac