複数人でgitレポジトリを共有する方法

sshを通してgitを利用する場合はgitを共有して利用するためのグループを作り, そのグループにパーミションを付与する.

管理側:
gitグループを追加
% sudo pw groupadd git
taroユーザを追加
% sudo adduser taro
taroユーザをgitグループに追加
% sudo pw usermod -n taro -G taro,wheel,git

ユーザ側:
% sudo mkdir hoge.git
% cd hoge.git
% sudo git init –bare –shared

% cd ..
% chgrp -R git hoge.git
% ls -l
drwxrwsr-x 7 root git 4096 6月 18 00:42 hoge.git

taro% mkdir hoge
taro% cd hoge
taro% git init
taro% git remote add origin ssh://taro@hogehoge.com/var/git/hoge.git #ローカルリポジトリに共有リポジトリを登録
taro% touch README
taro% git add .
taro% git commit -m “Initial import”
taro% git push origin master #共有リポジトリ(origin)にローカルリポジトリ(master)の更新を反映

参考:

続 せっかちな人のための git 入門 – 共有リポジトリの作り方 – 僕は発展途上技術者

学内ネットワークからftp接続する方法

学内から直接ftpで接続できないので, proxyを通して接続する.

~% ftp proxy.sras.sic.shibaura-it.ac.jp
Trying 202.18.118.128…
Connected to proxy.sic.shibaura-it.ac.jp.220- ocache01 PROXY-FTP server (DeleGate/9.9.7) ready.
220- @ @
220- ( – ) { DeleGate/9.9.7 (March 31, 2010) }
220- AIST-Product-ID: 2000-ETL-198715-01, H14PRO-049, H15PRO-165, H18PRO-443
220- Copyright (c) 1994-2000 Yutaka Sato and ETL,AIST,MITI
220- Copyright (c) 2001-2010 National Institute of Advanced Industrial Science a
nd Technology (AIST)
220- WWW: http://www.delegate.org/delegate/
220- –
220- You can connect to a SERVER by user' command:
220- ftp> user username@SERVER
220- or by
cd’ command (after logged in as an anonymous user):
220- ftp> cd //SERVER
220- Cache is enabled by default and can be disabled by cd .' (toggle)
220- This (proxy) service is maintained by 'goiken@sic.shibaura-it.ac.jp'
220-
220-extended FTP [MODE XDC][XDC/BASE64]
220
Name (proxy.sras.sic.shibaura-it.ac.jp:l08100): ftp@ftp.freebsd.org
331 Password required for ftp.
Password:
230-- PASS for ftp@ftp.freebsd.org.
220 ftp.beastie.tdk.net FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230- Guest login ok, access restrictions apply.
230-- @ @
230 \( - )/ -- { connected to
ftp.freebsd.org’ }
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||34337|)
150 Opening ASCII mode data connection for ‘/bin/ls’.
total 10
drwxrwxr-x 2 0 5 512 Jul 19 2007 .snap
drwx—— 2 0 0 2048 Jul 19 2007 lost+found
drwxr-xr-x 3 1006 1006 512 Sep 21 2009 pub
drwxr-xr-x 3 1006 1006 512 Jun 5 2007 sup
drwxr-xr-x 4 1006 0 512 Sep 18 2009 www
226 Transfer complete.
ftp>

<ユーザ名>@<接続先IP>で接続する. anonymous接続する場合はユーザ名にftpを指定するらしい.

参考URLにはGUIソフトでの設定もあるので,GUIソフトで繋ぎたい場合は要参照.

参考:

ftp プロキシサーバ

Emacsでpython

Emacs上でM-x run-pythonと入力するとpythonのreplが起動します。
*.pyバッファ上でC-c C-lでファイルをrepl上にロードできます。

参考:

遠い海: lispとrubyとpythonと (REPL)

mysqlのバックアップ方法

いざという時に備えてデータベースのバックアップをしましょう。

  • オフラインで行う場合

[plain]
# /etc/init.d/mysqld stop
# cp -r /var/lib/mysql /tmp/mysql-backup
# /etc/init.d/mysqld start
[/plain]

  • オンラインで行う場合

mysqldumpで指定されたデータベースおよびテーブルのASCIIダンプを生成します。

[plain]
$ mysqldump –add-drop-table -h mysqlhostserver
-u mysqlusername -p databasename (tablename tablename tablename) | bzip2
-c > blog.bak.sql.bz2
[/plain]

例:

[plain]
$ mysqldump –add-drop-table -h db01.example.net -u dbocodex -p dbwp | bzip2 -c > blog.bak.sql.bz2
[/plain]

復元方法:
bz2ファイルを解凍し、sqlスクリプトを実行します。

[plain]
$ bzip2 -d blog.bak.sql.bz2
$ mysql -h mysqlhostserver -u mysqlusername -p databasename < blog.bak.sql [/plain]

bzip2は圧縮のために使っています。以下のようにすれば無圧縮のsqlファイルが作れます。

[plain] $ mysqldump –add-drop-table -h db01.example.net -u dbocodex -p dbwp > blog.bak.sql
[/plain]

参考:

Backing Up Your Database « WordPress Codex

Restoring Your Database From Backup « WordPress Codex

MySQLデータのバックアップ方法 – SourceForge.JP Magazine : オープンソースの話題満載

Xcodeを使ったjailbreak済みiPod touchアプリの開発

MacでiOS向けのアプリを作る場合Appleの統合開発環境(IDE)であるXcodeを使って開発すると便利です。そこでjailbreak済みのiPou touch向けアプリを作るための方法を紹介します。

1.公式のガイドを参考にしながら証明書をつくる(Obtaining a Signing Identityのみ行えばよい)

2.jailbreak済みのiPod touchでCydiaを使い、AppSyncをインストールする。しかしデフォルトのリポジトリにはAppSyncはないのでhttp://cydia.hackulo.usを追加してからインストールする

3.SDKSettings.plistを編集する

[plain]
cd /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk
sudo cp SDKSettings.plist SDKSettings.plist.orig
sudo vi SDKSettings.plist
[/plain]

<key>CODE_SIGNING_REQUIRED<key>
<string>YES<string>

という部分と

<key>ENTITLEMENTS_REQUIRED<key>
<string>YES<string>

という部分を見つけそれぞれYESをNOに書き換える。

4.Info.plistを書き換える

[plain]
cd /Developer/Platforms/iPhoneOS.platform/
sudo cp Info.plist Info.plist.orig
sudo vi Info.plist
[/plain]

<key>CODE_SIGN_CONTEXT_CLASS<key>
<string>XCiPhoneOSCodeSignContext<string>

という部分の

<string>XCiPhoneOSCodeSignContext<string>

という行を

<string>XCCodeSignContext<string>

に書き換える。

5.Xcodeのパッチを書く

[plain]
cd ~/Desktop
vi script
[/plain]

[shell]
#!/bin/bash
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
printf "\xc3\x26\x00\x00" >> working
/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
/bin/mv working iPhoneOS\ Build\ System\ Support
chmod a+x iPhoneOS\ Build\ System\ Support
[/shell]

上記を貼りつける。

[plain]
chmod 777 script
./script
[/plain]

うまういくと以下のように表示される。

[plain]
$ ./script
223+1 records in
223+1 records out
111648 bytes transferred in 0.002678 secs (41692099 bytes/sec)
[/plain]

これでコードサインが必要ないことをXcodeに伝えた。

6.Xcodeでコードサインしないように設定する

Xcodeを起動し、Project>Edit Project Settingsをクリックし”Buid”タブを開く。
“Code Signing Identity”とその中の”Any iOS”の設定を”Don’t Code Sign”に設定する。
iOSのバージョンに合わせて”iOS Deployment Target”の値を変更する。

これでCode Sign error: The identity ‘iPhone Developer’ doesn’t match any valid certificate/private key pair in the default keychainというエラーはでなくなる。

7.次のコードを実行する

[plain]
mkdir /Developer/iphoneentitlements401
cd /Developer/iphoneentitlements401
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
chmod 777 gen_entitlements.py
[/plain]

8.iPod touchをつなぎ、Xcodeを立ち上げる。Window>Organizerをクリックし、デバイスを選択する。そして”Use for development.”をクリックする。provisioning website loginを求められるがcancelをクリックする。

これで実機で動作するようになったはずである。

Error from debugger: The program being debugged is not being run
というエラーがでる場合の対処:

Project > New Build Phase > New Run Script Build Phaseを開き、windowに次のコードをコピペする。

[plain]
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
/Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
codesign -f -s "iPhone Developer" –entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi
[/plain]

参考:

Developing for a Jailbroken iPhone A to Z (iOS 4.0.1) « alexwhittemore.com

Code Signing Guide: Procedures

MacでiPod touch用アプリのコンパイルを行う(クロスコンパイル)方法

Mac上でiPod touch用のアプリケーションの開発を行おうと思っても、iPod touchではarmというCPUアーキテクチャを使っているため、x86アーキテクチャを使っているMacなどではiPod touch用のオブジェクトコードを出力することができません。

しかし公式SDKの中に含まれるgccコンパイラを使えば、iPod touch向けコードを生成することができます。

まずApple公式ページよりiOS SDKをダウンロードします。

そして次のコマンドを実行することでiPod touch用にソースをコンパイルすることができます。

/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv6
– isysroot/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk -o hell o hello.c

なお、-frameworkオプションも使えるため-framework Foundationという風にオプションを追加すればObjective-Cのソースもコンパイルすることができます。

参考:
iOS Dev Center – Apple Developer

Toolchain 2.0 – The iPhone Wiki

iPhone,iPod touch,iPadにGCCをインストールする方法

iPod touch上にGCCをインストールし、C言語の開発ができるようにしましょう。

1.Cydiaの下部にあるタブでManage(管理)をタップし、SettingsでDeveloperを選択する。
2.Searchで「Gnu C compiler」「iPhone tool chain 2.0」「ldid」「fake-libgcc」をインストールする。
3.必要ファイルを追加する

http://rapidshare.com/files/66800884/lib.rar

lib.rarをダウンロード、解凍する(passはaksblog.co.nr)。

そして、下記の3つのファイルを/usr/libにコピーする。

  • libgcc_s.1.dylib
  • libSystem.dylib
  • libsystem.B.dylib

以上でiPod touch上でC言語のソースファイルをコンパイルできるようになります。

ただgcc hello.cのようにするとerror: stdio.h: No such file or directoryと言われるためgcc -I /var/include/ hello.c でヘッダファイルがあるディレクトリを指定します。(symlinkを貼れば解決?)

参考:
pxsta’s Memo » GCC

Linuxをはじめよう!:iPhone/iPod touchでC言語プログラミング(改訂2)

iPhone,iPod touch,iPad Jailbreak方法

Jailbreakとはセキュリティホールを突くなどの方法でゲーム機や情報端末などのコンピュータに設けられた制限を取り外し、製造者や管理者の意図しない方法でソフトウェアを起動できるような状態にすることである。

Jailbreakするとappleから許可を得ていないアプリケーションもCydiaからインストールして、実行できるようになる。

そこで、iPhone、iPod touch、iPadをJailbreakする方法を説明する。

有名なjailbreakソフト一覧:

  • redsno0w
  • PwnageTool
  • JailbreakMe
  • Greenpois0n

今回はこの中のGreenpoi0nを使用した。

1.まず以下のリンクからGreenpois0nをダウンロードする。

Greenpois0n

2.Greenpois0nはiOSのバーションを4.2.1にしなければならないため、それ以外のバージョンである場合は復元か更新を行う。

iPhone 3GS iPhone2,1_4.2.1_8C148a_Restore.ipsw
iPhone 4 iPhone3,1_4.2.1_8C148_Restore.ipsw
iPod touch 2G iPod2,1_4.2.1_8C148_Restore.ipsw
iPod touch 3G iPod3,1_4.2.1_8C148_Restore.ipsw
iPod touch 4G iPod4,1_4.2.1_8C148_Restore.ipsw
iPad iPad1,1_4.2.1_8C148_Restore.ipsw

3.ダウンロードしたGreenpois0nを起動する。


4.iOSデバイスがUSBで接続しているのを確認したらJailBreakをクリック


5.画面の指示に従い、DFUモードに入れる。

  • 5秒間待つ。


  • スリープボタンを3秒間押し続ける。


  • スリープボタンは離さず、ホームボタンと一緒に10秒間押し続ける。

  • ホームボタンは離さず、スリープボタンのみ10秒間押し続ける。


  • 成功すると画面が反応する。



6.脱獄が終了すると、ホーム画面にLoaderというアプリが追加されているはずで、これを起動する。
7.Cydiaアイコンをタップし、続けてInstall Cydiaをタップする。ネット経由でダウンロードするので無線はオンにしておく。
8.インストールが完了すると、ホーム画面にCydiaアイコンが追加される。
9.Loaderはもう不要なので、Loaderを消す。Loaderを起動し、Optionsをタップし、Remove Loader.appをタップする。

参考:

iPhone / iPod touch / iPad iOS 4.2.1 対応脱獄ツール “Greenpois0n RC6.1 for Mac” | Tools 4 Hack