Mercurial:Install with pip on a virtualenv

1.virtualenv “hg”を作成

hdknr@LennyOne:~$ mkvirtualenv hg

New python executable in hg/bin/python
Installing setuptools…………done.
(hg) hdknr@LennyOne:~$ cdvirtualenv

2. pip インストール(easy_install)

(hg) hdknr@LennyOne:~/.virtualenvs/hg$ easy_install pip
Searching for pip
Reading http://pypi.python.org/simple/pip/
Reading http://pip.openplans.org
Best match: pip 0.6.1
Downloading http://pypi.python.org/packages/source/p/pip/pip-0.6.1.tar.gz#md5=7560e3055c66afb99ac4a7892389a237
Processing pip-0.6.1.tar.gz
Running pip-0.6.1/setup.py -q bdist_egg –dist-dir /tmp/easy_install-M2OKyU/pip-0.6.1/egg-dist-tmp-nQGHRe
warning: no files found matching ‘*.html’ under directory ‘docs’
warning: no previously-included files matching ‘*.txt’ found under directory ‘docs/_build’
no previously-included directories found matching ‘docs/_build/_sources’
warning: no files found matching ‘*’ under directory ‘scripts/completion’
zip_safe flag not set; analyzing archive contents…
pip: module references __file__
Adding pip 0.6.1 to easy-install.pth file
Installing pip script to /home/hdknr/.virtualenvs/hg/bin

Installed /home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/pip-0.6.1-py2.5.egg
Processing dependencies for pip
Finished processing dependencies for pip

3.pipでMercurialをインストール

(hg) hdknr@LennyOne:~/.virtualenvs/hg$ pip install -e hg+https://hdknr@bitbucket.org/mirror/mercurial-stable/#egg=mercurial
Obtaining mercurial from hg+https://hdknr@bitbucket.org/mirror/mercurial-stable/#egg=mercurial
  Cloning hg https://hdknr@bitbucket.org/mirror/mercurial-stable/ to ./src/mercurial
  Running setup.py egg_info for package mercurial
Installing collected packages: mercurial
  Running setup.py develop for mercurial
    building ‘mercurial.base85’ extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.5 -c

mercurial/base85.c -o build/temp.linux-i686-2.5/mercurial/base85.o
    gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-i686-2.5/mercurial/base85.o -o build/lib.linux-i686

-2.5/mercurial/base85.so
    building ‘mercurial.bdiff’ extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.5 -c

mercurial/bdiff.c -o build/temp.linux-i686-2.5/mercurial/bdiff.o
    gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-i686-2.5/mercurial/bdiff.o -o build/lib.linux-i686-

2.5/mercurial/bdiff.so
    building ‘mercurial.diffhelpers’ extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.5 -c

mercurial/diffhelpers.c -o build/temp.linux-i686-2.5/mercurial/diffhelpers.o
    gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-i686-2.5/mercurial/diffhelpers.o -o build/lib.linux

-i686-2.5/mercurial/diffhelpers.so
    building ‘mercurial.mpatch’ extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.5 -c

mercurial/mpatch.c -o build/temp.linux-i686-2.5/mercurial/mpatch.o
    gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-i686-2.5/mercurial/mpatch.o -o build/lib.linux-i686

-2.5/mercurial/mpatch.so
    building ‘mercurial.parsers’ extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.5 -c

mercurial/parsers.c -o build/temp.linux-i686-2.5/mercurial/parsers.o
    gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-i686-2.5/mercurial/parsers.o -o build/lib.linux-

i686-2.5/mercurial/parsers.so
    building ‘mercurial.osutil’ extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.5 -c

mercurial/osutil.c -o build/temp.linux-i686-2.5/mercurial/osutil.o
    gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-i686-2.5/mercurial/osutil.o -o build/lib.linux-i686

-2.5/mercurial/osutil.so
    building ‘hgext.inotify.linux._inotify’ extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.5 -c

hgext/inotify/linux/_inotify.c -o build/temp.linux-i686-2.5/hgext/inotify/linux/_inotify.o
    gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-i686-2.5/hgext/inotify/linux/_inotify.o -o

build/lib.linux-i686-2.5/hgext/inotify/linux/_inotify.so
    Creating /home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/mercurial.egg-link (link to .)
    Adding mercurial 1.4-2-57949bfec718 to easy-install.pth file
    Installing hg script to /home/hdknr/.virtualenvs/hg/bin

    Installed /home/hdknr/.virtualenvs/hg/src/mercurial
Successfully installed mercurial

(hg) hdknr@LennyOne:~/.virtualenvs/hg/src/mercurial$ cdvirtualenv
(hg) hdknr@LennyOne:~/.virtualenvs/hg$ python
Python 2.5.2 (r252:60911, Jan  4 2009, 17:40:26)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mercurial
>>> mercurial.__file__
‘/home/hdknr/.virtualenvs/hg/src/mercurial/mercurial/__init__.pyc’

4.テストレポジトリ作成

(hg) hdknr@LennyOne:~/.virtualenvs/hg$ mkdir repos
(hg) hdknr@LennyOne:~/.virtualenvs/hg$ mkdir -p repos/hello
(hg) hdknr@LennyOne:~/.virtualenvs/hg$ cd repos/hello/
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ hg init
*** failed to import extension hgext.imerge: No module named imerge
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ echo $PATH
/home/hdknr/.virtualenvs/hg/bin:/home/hdknr/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ which hg
/home/hdknr/.virtualenvs/hg/bin/hg
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ sudo vim /etc/mercurial/hgrc.d/hgext.rc
コメントアウト
#hgext.imerge =

(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ hg init
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ ls -aR
.:
.  ..  .hg

./.hg:
.  ..  00changelog.i  requires  store

./.hg/store:
.  ..

(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ date > readme.txt
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ hg status
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ ls -al
合計 16
drwxr-xr-x 3 hdknr hdknr 4096 2009-12-21 14:35 .
drwxr-xr-x 3 hdknr hdknr 4096 2009-12-21 14:34 ..
drwxr-xr-x 3 hdknr hdknr 4096 2009-12-21 14:35 .hg
-rw-r–r– 1 hdknr hdknr   43 2009-12-21 14:35 readme.txt
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ hg add readme.txt
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ hg status
A readme.txt
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ hg commit -u hdknr -m "provided repostory for hello"
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ hg status
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$

5. Mercurial Web設定

(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ cat > ../hgweb.config
[collections]
hello/=/home/hdknr/.virtualenvs/hg/repos/hello/

6. hg.hdknr.deb仮想サーバー作成

(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/hello$ cdvirtualenv

(hg) hdknr@LennyOne:~/.virtualenvs/hg$ mkdir apache
(hg) hdknr@LennyOne:~/.virtualenvs/hg/apache$ sudo~/bin/apache/mksite.sh hg.hdknr.deb
(hg) hdknr@LennyOne:~/.virtualenvs/hg/apache$ ls -R
.:
hg.hdknr.deb

./hg.hdknr.deb:
conf  logs  www

./hg.hdknr.deb/conf:
httpd.conf  httpd.conf.d

./hg.hdknr.deb/conf/httpd.conf.d:
wsgi.def

./hg.hdknr.deb/logs:

./hg.hdknr.deb/www:
index.html

7.MercurialのWSGIスクリプトを設定

(hg) hdknr@LennyOne:~/.virtualenvs/hg/apache$ find ../src/mercurial/ -name "hgwebdir.*" -print
../src/mercurial/hgwebdir.cgi
../src/mercurial/contrib/hgwebdir.fcgi
../src/mercurial/contrib/hgwebdir.wsgi
../src/mercurial/.hg/store/data/contrib/hgwebdir.wsgi.i
../src/mercurial/.hg/store/data/contrib/hgwebdir.fcgi.i
../src/mercurial/.hg/store/data/hgwebdir.cgi.i

(hg) hdknr@LennyOne:~/.virtualenvs/hg/apache$ sudo cp ../src/mercurial/contrib/hgwebdir.wsgi hg.hdknr.deb/conf/

(hg) hdknr@LennyOne:~/.virtualenvs/hg/apache$ sudo vi hg.hdknr.deb/conf/hgwebdir.wsgi

#application = hgwebdir(‘hgweb.config’)
CONFIG=’/home/hdknr/.virtualenvs/hg/repos/hgweb.config’
application = hgwebdir(CONFIG)

8. WSGIプロセスをApacheに登録

(hg) hdknr@LennyOne:~/.virtualenvs/hg/apache$ sudo vim hg.hdknr.deb/conf/httpd.conf.d/wsgi.def

WSGIDaemonProcess vhg user=www-data group=www-data threads=25  ¥
    python-path=/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/:/home/hdknr/.virtualenvs/hg/bin

9. レポジトリの仮想ディレクトリを設定(/hg)

(hg) hdknr@LennyOne:~/.virtualenvs/hg/apache$ sudo vim hg.hdknr.deb/conf/httpd.conf.d/hg.conf
WSGIScriptAlias /hg /home/hdknr/.virtualenvs/hg/apache/hg.hdknr.deb/conf/hgwebdir.wsgi
<Location /hg >
    WSGIReloadMechanism Process
    WSGIProcessGroup vhg
    WSGIApplicationGroup %{SERVER}
   Options All
</Location>

10. apaches reload

(hg) hdknr@LennyOne:~/.virtualenvs/hg/apache$ sudo /etc/init.d/apache2 reload
Syntax error on line 1 of /home/hdknr/.virtualenvs/hg/apache/hg.hdknr.deb/conf/httpd.conf.d/wsgi.def:
Invalid command ‘WSGIDaemonProcess’, perhaps misspelled or defined by a module not included in the server configuration
failed!

(hg) hdknr@LennyOne:~/.virtualenvs/hg/apache$ sudo aptitude install libapache2-mod-wsgi
パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています… 完了
タスクの記述を読み込んでいます… 完了
以下の新規パッケージがインストールされます:
  libapache2-mod-wsgi
更新: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
107kB のアーカイブを取得する必要があります。展開後に 381kB のディスク領域が新たに消費されます。
拡張状態情報を書き込んでいます… 完了
取得:1 http://ftp.jp.debian.org lenny/main libapache2-mod-wsgi 2.5-1~lenny1 [107kB]
107kB を 4s 秒でダウンロードしました (25.3kB/s)
未選択パッケージ libapache2-mod-wsgi を選択しています。
(データベースを読み込んでいます … 現在 74160 個のファイルとディレクトリがインストールされています。)
(…/libapache2-mod-wsgi_2.5-1~lenny1_i386.deb から) libapache2-mod-wsgi を展開しています…
libapache2-mod-wsgi (2.5-1~lenny1) を設定しています …
Reloading web server config: apache2.
パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています
状態情報を読み取っています… 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています… 完了
拡張状態情報を書き込んでいます… 完了
タスクの記述を読み込んでいます… 完了

11. Done!

 

WS000012

パスの表示が。。。。

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中