Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Version管理 1

1,419 views

Published on

  • Be the first to comment

  • Be the first to like this

Version管理 1

  1. 1. Version管理 (サーバ環境構築編) 2013/01/31 SEC 香戸 寛雄
  2. 2. 導入
  3. 3. 概要バージョン管理システムの最も基本的な機能は、ファイルの作成日時、変更日時、変更点などの履歴を保管することである。これにより、何度も変更を加えたファイルであっても、過去の状態や変更内容を確認したり、変更前の状態を復元することが容易になる。更に、多くのバージョン管理システムでは、複数の人間がファイルの編集に関わる状況を想定している。商業的なソフトウェア開発やオープンソースプロジェクトなどでは、複数の人間が複数のファイルを各々編集するため、それぞれのファイルの最新の状態が分からなくなったり、同一ファイルに対する変更が競合するなどの問題が生じやすいが、バージョン管理システムは、このような問題を解決する仕組みを提供する。ただし、バージョン管理システムを個人のファイル管理に使用することも可能であるし、ソフトウェアのソースコードだけでなく、設定ファイルや原稿の管理などにも使うことも可能である。 Wikipwdiaより
  4. 4. 基本的な機能
  5. 5. ファイルサーバ共有の問題● 間違って消してしまった● 上書きの問題● 履歴の問題● 異なるリリースの同時開発などなど
  6. 6. 機能説明
  7. 7. チェックアウトリポジトリからプロジェクトを取り出し、作業コピーを作成すること。以降、ローカル環境ではこの作業コピーに対し作業を行う。
  8. 8. コミット変更内容をリポジトリに保存することその際、コメントを記述することが可能また、コミット時にシーケンシャルな番号(リビジョン)を発行され、リポジトリではこのリビジョン番号にて管理が行われる。
  9. 9. アップデートリポジトリのコミットをローカル環境に取り込む
  10. 10. トランク、ブランチ、タグソースや資料など、正となる主流のものを格納する場所をトランクといいます。主流とは別、またはヴァージョンが異なるものを格納する場所をブランチといいます。また、リリース時など管理するために作成するラベルをタグといいます。これらを「trunk」「branches」「tags」というディレクトリで管理します。
  11. 11. マージブランチからトランク、ブランチから他のブランチへと変更(コミット)内容を移動(合体)すること
  12. 12. ロック特定のディレクトリ(フォルダ)やファイルを他の人に変更されないようにロックをかけることが可能ですロック取得中、他の人はコミットが行えません
  13. 13. Version管理システムの種類
  14. 14. 代表的なVersion管理システムローカルのみ フリー/オープンソース CSSC (2005) · RCS (1982) プロプライエタリ SCCS (1972) · PVCS (1985)C/S型 フリー/オープンソース CVS (1990) · CVSNT (1998) · Subversion (2000) プロプライエタリ Software Change Manager (1970s) · ClearCase (1992) · Visual SourceSafe (1994) · Perforce (1995) · AccuRev (2002) ·Team Foundation Server (2005)分散型 フリー/オープンソース GNU arch (2001) · Darcs (2002) · DCVS (2002) · SVK (2003) · Monotone (2003) · Codeville (2005) · Git (2005) ·Mercurial (2005) · Bazaar (2005) · Fossil (2007) · Veracity (2011) プロプライエタリ TeamWare (1990年代?) · Code Co-op (1997) · BitKeeper (1998) · Plastic SCM (2006)
  15. 15. サーバ構築
  16. 16. 今回の構成Virtual Boxlibuxサーバ(ubuntu) svn httpサーバ(apache)
  17. 17. VirtualBox インポート ファイル > 仮想アプライアンスのインポートを選択後 インポートする ovaファイルを選択してください
  18. 18. VirtualBox インポート CPU、メモリなどを自分の PCにあわせ調整してください ※ メモリが少ない PCの場合は、512MB程度  メモリにまったく余裕がない場合は、 256MBで  (256MBだととても遅いです)
  19. 19. ポートフォワード設定 ネットワークからアダプター1を選択 高度をクリックし ポートフォワーディングを押下
  20. 20. ポートフォワード設定 「+」ボタンを押下、以下の 2つを追加してください 名前 プロトコル ホストポート ゲストポート http TCP 20080 80 svn TCP 23690 3690 ssh TCP 20022 22 ※ ホストIP、ゲストIPは空でOK
  21. 21. Ubuntu 起動 起動を押下 ユーザ:ika パスワード:password (sudoはパスワードなしで実行可能にし てあります)
  22. 22. Apache2のインストールsudo apt-get install apache2コマンドを実行
  23. 23. SVN関連のインストールsudo apt-get install subversion subversion-tools libapache2-svnコマンドを実行● subversion-toolsはレポジト リのバックアップやファイルの マージなどのツール群● libapache2-svnはレポジトリ をApache2を利用して公開す るためのModule
  24. 24. SVNの設定dav_svn.confを編集sudo vi /etc/apache2/mods-enabled/dav_svn.confコマンドを実行以下を追記(コメントアウトされているもとを復活でも可) <Locotion /svn> DAV svn SVNParentPath /home/svn </Location>
  25. 25. Apacheの再起動設定を反映させるためApacheを再起動しますsudo apache2ctl restartコマンドを実行
  26. 26. Apacheの起動確認Apacheのプロセスを確認しますps aux | grep apache2コマンドを実行
  27. 27. SVNのリポジトリ作成testというリポジトリを作成してみましょうついでに権限もapacheのユーザに変えておきましょうsudo mkdir /home/svn/cd /home/svn/sudo svnadmin create testsudo chown -R www-data.www-data /home/svnコマンドを実行
  28. 28. ブラウザでの確認ブラウザを開き、以下のURLを入力localhost:20080/svn/testRevision 0 でページが表示されればOKです
  29. 29. SVNのテストユーザのホームにテスト用のディレクトリとファイルを追加してみましょうcdmkdir testcd testecho test1234 > test.txtcat test.txtコマンドを実行
  30. 30. SVNのリポジトリへ登録先ほど作成したディレクトリとファイルをリポジトリへ登録しましょうcd ../svn import test/ http://localhost/svn/test/ -m"import test"コマンドを実行
  31. 31. ブラウザでの確認ブラウザを開き、以下のURLを入力localhost:20080/svn/testRevision 1 でtest.txtが表示されればOKです
  32. 32. svnログの確認svn log http://localhost/svn/test/コマンドを実行r1にてコミット者(今回はno author)コミット日、コメント(-mパラメータ)が表示されればOK
  33. 33. コマンドいろいろ以下のサイトにコマンドのリファレンスがありますhttp://www.caldron.jp/~nabetaro/svn/svnbook-1.4-final/svn.ref.htmlまた、簡単な一覧は以下http://www.atmarkit.co.jp/flinux/special/webdav03/webdav02c.html
  34. 34. Basic認証の設定
  35. 35. ApacheのBasic認証設定dav_svn.confを編集sudo vi /etc/apache2/mods-enabled/dav_svn.confコマンドを実行以下を追記(SVNParentPath...の下あたり) AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user AuthName:認証ダイアログの表示文字 AuthUserFile:認証情報の格納場所
  36. 36. ユーザーの追加Basic認証に「user1」を追加してみましょうsudo htpasswd -c /etc/apache2/dav_svn.passwd user1コマンドを実行パスワードを「password1」で設定
  37. 37. Apacheの再起動設定を反映させるためApacheを再起動しますsudo apache2ctl restartコマンドを実行
  38. 38. ブラウザでの確認ブラウザを開き、以下のURLを入力localhost:20080/svn/test認証ダイアログだ出ます。先ほど設定したユーザー、パスワードを入力してログインできればOK
  39. 39. チェックアウトしてみようユーザのホームにworkディレクトリを作成し、チェックアウトしてみようmkdir -p ~/work/testsvn checkout http://localhost/svn/test ~/work/testコマンドを実行
  40. 40. ファイルを追加してみようユーザのホームにテスト用のディレクトリとファイルを追加してみましょうcd ~/work/testecho test5678 > test2.txtsvn add ~/work/test/test2.txt$ svn commit -m "add test2.txt"コマンドを実行
  41. 41. ブラウザでの確認ブラウザを開き、以下のURLを入力localhost:20080/svn/test認証ダイアログが出ます。Revision 2でtest2.txtが表示されればOKです
  42. 42. svnログの確認svn log http://localhost/svn/test/コマンドを実行r2にてコミット者(user1)コミット日、コメント(-mパラメータ)が表示されればOK
  43. 43. SVNプロトコルの設定(おまけ)
  44. 44. SVNプロトコルの設定リポジトリのsvnserve.confを編集sudo vi /home/svn/test/conf/svnserver.confコマンドを実行以下を追記(コメントアウトされているもとを復活でも可) anon-access = read auth-access = write password-db = passwd ※ 先頭にスペースを入れないこと
  45. 45. svnユーザの追加svnのコミットが可能なユーザを追加しましょうsudo vi /home/svn/test/conf/passwdコマンドを実行以下を追記 user2 = password2
  46. 46. svnserveの起動svnプロトコルを使用できるようにsvnserveを起動しますsudo svnserve -dコマンドを実行
  47. 47. チェックアウトしてみようユーザのホームにworksvnディレクトリを作成し、チェックアウトしてみようmkdir ~/worksvncd ~/worksvnsvn checkout svn://localhost/home/svn/testコマンドを実行
  48. 48. ファイルを変更してみようユーザのホームにテスト用のディレクトリとファイルを追加してみましょうcd testecho "mod test5678" >> test2.txt$ svn commit -m "mod test2.txt" --username "user2"コマンドを実行※パスワードを求められるので、先ほど設定したものを入力
  49. 49. apacheからの変更禁止
  50. 50. SVNの権限設定dav_svn.confを編集sudo vi /etc/apache2/mods-enabled/dav_svn.confコマンドを実行以下を追記(</Location>の上あたり) <LimitExcept GET PROPFIND OPTION REORT> deny from all </LimitExcept>
  51. 51. Apacheの再起動設定を反映させるためApacheを再起動しますsudo apache2ctl restartコマンドを実行
  52. 52. ブラウザでの確認ブラウザを開き、以下のURLを入力localhost:20080/svn/test今まで表示は可能です。
  53. 53. http作業コピーの変更httpでチェックアウトした作業コピーを変更してみようcd ~/work/testecho "mod test9012" >> test2.txtsvn commit -m "mod test2.txt"コマンドを実行エラーとなりコミットが行えません
  54. 54. svn作業コピーの変更ユーザのホームにテスト用のディレクトリとファイルを追加してみましょうcd ~/worksvn/testecho "mod test3456" >> test.txt$ svn commit -m "mod test.txt" --username "user2"コマンドを実行※パスワードを求められるので、先ほど設定したものを入力
  55. 55. END
  56. 56. 番外編 ネットワーク設定
  57. 57. svnserveの起動設定を反映させるためsvnserveを起動しますsudo svnserve -dコマンドを実行
  58. 58. VirtualBox ネットワーク設定 ファイル > 環境設定を選択 注意)まだ停止状態で!
  59. 59. VirtualBox ネットワーク設定 「+」マークを押下 VirtualBox Host-Only Ethaernet Adapter #2 を作成
  60. 60. VirtualBox ネットワーク設定 「ドライバ」マークを押下 IPv4アドレスをメモしておく
  61. 61. VirtualBox ネットワーク設定 設定を押下
  62. 62. VirtualBox ネットワーク設定 ネットワークの アダプター2の ネットワークアダプターを有効化にチェック 割り当てにホストオンリーアダプターを選択 名前はVirtualBox Host-Only Ethaernet Adapter #2を選択
  63. 63. Ubuntu ネットワーク設定 ifconfig -a を実行 eth0,lo以外のものがあるこ とを確認
  64. 64. Ubuntu ネットワーク設定sudo vi /etc/network/interfacesコマンドを実行ファイルの最後に以下の内容を追加 auto eth1 メモったIPアドレス を記入する iface eth1 inet static address 192.168.123.1 netmask 255.255.255.0
  65. 65. Ubuntu ネットワーク設定sudo /etc/init.d/networking restartコマンドを実行ifconfig eth1コマンドを実行し2行目にeth1に設定したIPアドレスが表示されればOK

×