tag:blogger.com,1999:blog-55390551111487452822024-02-21T03:50:11.929+09:00a spoonful of miracleHitoshihttp://www.blogger.com/profile/05474806785446110731noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-5539055111148745282.post-80083818457996650372014-01-28T16:08:00.001+09:002014-01-28T18:11:14.889+09:00Mac OSX(10.8.5)環境のSubversionで濁点問題を解決する<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<style>
h1, h2, h3, h4, h5, h6 {
margin: 20px 0 10px;
padding: 0;
font-weight: bold;
-webkit-font-smoothing: antialiased;
cursor: text;
position: relative; }
h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;
text-decoration: none; }
h1 tt, h1 code {
font-size: inherit; }
h2 tt, h2 code {
font-size: inherit; }
h3 tt, h3 code {
font-size: inherit; }
h4 tt, h4 code {
font-size: inherit; }
h5 tt, h5 code {
font-size: inherit; }
h6 tt, h6 code {
font-size: inherit; }
h1 {
font-size: 28px;
color: black; }
h2 {
font-size: 24px;
border-bottom: 1px solid #cccccc;
color: black; }
h3 {
font-size: 18px; }
h4 {
font-size: 16px; }
h5 {
font-size: 14px; }
h6 {
color: #777777;
font-size: 14px; }
p, blockquote, ul, ol, dl, li, table, pre {
margin: 15px 0; }
hr {
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;
border: 0 none;
color: #cccccc;
height: 4px;
padding: 0;
}
a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
margin-top: 0;
padding-top: 0; }
h1 p, h2 p, h3 p, h4 p, h5 p, h6 p {
margin-top: 0; }
li p.first {
display: inline-block; }
li {
margin: 0; }
ul, ol {
padding-left: 30px; }
ul :first-child, ol :first-child {
margin-top: 0; }
dl {
padding: 0; }
dl dt {
font-size: 14px;
font-weight: bold;
font-style: italic;
padding: 0;
margin: 15px 0 5px; }
dl dt:first-child {
padding: 0; }
dl dt > :first-child {
margin-top: 0; }
dl dt > :last-child {
margin-bottom: 0; }
dl dd {
margin: 0 0 15px;
padding: 0 15px; }
dl dd > :first-child {
margin-top: 0; }
dl dd > :last-child {
margin-bottom: 0; }
blockquote {
border-left: 4px solid #dddddd;
padding: 0 15px;
color: #777777; }
blockquote > :first-child {
margin-top: 0; }
blockquote > :last-child {
margin-bottom: 0; }
table {
padding: 0;border-collapse: collapse; }
table tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0; }
table tr:nth-child(2n) {
background-color: #f8f8f8; }
table tr th {
font-weight: bold;
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
table tr td {
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
table tr th :first-child, table tr td :first-child {
margin-top: 0; }
table tr th :last-child, table tr td :last-child {
margin-bottom: 0; }
img {
max-width: 100%; }
span.frame {
display: block;
overflow: hidden; }
span.frame > span {
border: 1px solid #dddddd;
display: block;
float: left;
overflow: hidden;
margin: 13px 0 0;
padding: 7px;
width: auto; }
span.frame span img {
display: block;
float: left; }
span.frame span span {
clear: both;
color: #333333;
display: block;
padding: 5px 0 0; }
span.align-center {
display: block;
overflow: hidden;
clear: both; }
span.align-center > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: center; }
span.align-center span img {
margin: 0 auto;
text-align: center; }
span.align-right {
display: block;
overflow: hidden;
clear: both; }
span.align-right > span {
display: block;
overflow: hidden;
margin: 13px 0 0;
text-align: right; }
span.align-right span img {
margin: 0;
text-align: right; }
span.float-left {
display: block;
margin-right: 13px;
overflow: hidden;
float: left; }
span.float-left span {
margin: 13px 0 0; }
span.float-right {
display: block;
margin-left: 13px;
overflow: hidden;
float: right; }
span.float-right > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: right; }
code, tt {
margin: 0 2px;
padding: 0 5px;
white-space: nowrap;
border: 1px solid #eaeaea;
background-color: #f8f8f8;
border-radius: 3px; }
pre code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent; }
.highlight pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px; }
pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px; }
pre code, pre tt {
background-color: transparent;
border: none; }
sup {
font-size: 0.83em;
vertical-align: super;
line-height: 0;
}
* {
-webkit-print-color-adjust: exact;
}
@media print {
table, pre {
page-break-inside: avoid;
}
pre {
word-wrap: break-word;
}
}
</style>
</head>
<body>
<h3>■Unicodeパッチに対応しているSubversion1.7をbrew経由でインストール</h3>
<h4>現在の最新は1.8なので、1.7があるリポジトリを追加</h4>
<pre><code>$ brew tap homebrew/versions
$ brew info subversion17
--unicode-path
Include support for OS X UTF-8-MAC filename
</code></pre>
<h4>インストールの設定を弄って1.7の最新バージョンを持ってくるようにする</h4>
<pre><code>$ vi /usr/local/Library/Taps/homebrew-versions/subversion17.rb
</code></pre>
<h5>Subversion(1.7.13 -> 1.7.14)</h5>
<pre><code>- url 'http://www.apache.org/dyn/closer.cgi?path=subversion/subversion-1.7.13.tar.bz2'
- mirror 'http://archive.apache.org/dist/subversion/subversion-1.7.13.tar.bz2'
- sha1 '844bb756ec505edaa12b9610832bcd21567139f1'
+ url 'http://archive.apache.org/dist/subversion/subversion-1.7.14.tar.bz2'
+ mirror 'http://archive.apache.org/dist/subversion/subversion-1.7.14.tar.bz2'
+ sha1 'b35254a844d0b221a3fd8e80974ac75119d77b94'
</code></pre>
<h5>serf(1.3.2 -> 1.3.3)</h5>
<pre><code>- url 'http://serf.googlecode.com/files/serf-1.3.2.tar.bz2'
- sha1 '90478cd60d4349c07326cb9c5b720438cf9a1b5d'
+ url 'http://serf.googlecode.com/files/serf-1.3.3.tar.bz2'
+ sha1 'b25c44a8651805f20f66dcaa76db08442ec4fa0e'
</code></pre>
<h5>インストール</h5>
<pre><code>$ brew install subversion17 --unicode-path
</code></pre>
<p>入った・・・が</p>
<pre><code>$ svn --version svn: E200019: ra_serf was compiled for serf 1.3.2 but loaded an incompatible 1.2.1 library
</code></pre>
<p>serfのバージョンに互換性がないと言われたので、もしかして既に入ってるserfと干渉しているのではと思い</p>
<pre><code>$ brew list | grep serf
</code></pre>
<p>したら見つかったので、削除した後再度インストールしたらいけた。</p>
<pre><code>$ brew remove serf
$ brew remove subversion17 Uninstalling /usr/local/Cellar/subversion/1.7.10...
$ brew install subversion17 --unicode-path
...
$ svn --version
svn, version 1.7.14 (r1542130)
</code></pre>
<h3>■参考</h3>
<h4>HomebrewでSubversion17をインストールする際のunicode-pathオプションでのエラー対処</h4>
<p>http://befool-inc.github.io/blog/2013/09/30/fix-homebrew-subversion17-unicode-patch/</p>
</body>
</html>Hitoshihttp://www.blogger.com/profile/05474806785446110731noreply@blogger.com0tag:blogger.com,1999:blog-5539055111148745282.post-25291137620309921432014-01-27T19:42:00.001+09:002014-01-28T18:11:50.379+09:00CentOS6.3へqmailをyumインストールしてメールを送るところまで<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<style>
a {
color: #4183C4; }
a.absent {
color: #cc0000; }
a.anchor {
display: block;
padding-left: 30px;
margin-left: -30px;
cursor: pointer;
position: absolute;
top: 0;
left: 0;
bottom: 0; }
h1, h2, h3, h4, h5, h6 {
margin: 20px 0 10px;
padding: 0;
font-weight: bold;
-webkit-font-smoothing: antialiased;
cursor: text;
position: relative; }
h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;
text-decoration: none; }
h1 tt, h1 code {
font-size: inherit; }
h2 tt, h2 code {
font-size: inherit; }
h3 tt, h3 code {
font-size: inherit; }
h4 tt, h4 code {
font-size: inherit; }
h5 tt, h5 code {
font-size: inherit; }
h6 tt, h6 code {
font-size: inherit; }
h1 {
font-size: 28px;
color: black; }
h2 {
font-size: 24px;
border-bottom: 1px solid #cccccc;
color: black; }
h3 {
font-size: 18px; }
h4 {
font-size: 16px; }
h5 {
font-size: 14px; }
h6 {
color: #777777;
font-size: 14px; }
p, blockquote, ul, ol, dl, li, table, pre {
margin: 15px 0; }
hr {
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;
border: 0 none;
color: #cccccc;
height: 4px;
padding: 0;
}
a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
margin-top: 0;
padding-top: 0; }
h1 p, h2 p, h3 p, h4 p, h5 p, h6 p {
margin-top: 0; }
li p.first {
display: inline-block; }
li {
margin: 0; }
ul, ol {
padding-left: 30px; }
ul :first-child, ol :first-child {
margin-top: 0; }
dl {
padding: 0; }
dl dt {
font-size: 14px;
font-weight: bold;
font-style: italic;
padding: 0;
margin: 15px 0 5px; }
dl dt:first-child {
padding: 0; }
dl dt > :first-child {
margin-top: 0; }
dl dt > :last-child {
margin-bottom: 0; }
dl dd {
margin: 0 0 15px;
padding: 0 15px; }
dl dd > :first-child {
margin-top: 0; }
dl dd > :last-child {
margin-bottom: 0; }
blockquote {
border-left: 4px solid #dddddd;
padding: 0 15px;
color: #777777; }
blockquote > :first-child {
margin-top: 0; }
blockquote > :last-child {
margin-bottom: 0; }
table {
padding: 0;border-collapse: collapse; }
table tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0; }
table tr:nth-child(2n) {
background-color: #f8f8f8; }
table tr th {
font-weight: bold;
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
table tr td {
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
table tr th :first-child, table tr td :first-child {
margin-top: 0; }
table tr th :last-child, table tr td :last-child {
margin-bottom: 0; }
img {
max-width: 100%; }
span.frame {
display: block;
overflow: hidden; }
span.frame > span {
border: 1px solid #dddddd;
display: block;
float: left;
overflow: hidden;
margin: 13px 0 0;
padding: 7px;
width: auto; }
span.frame span img {
display: block;
float: left; }
span.frame span span {
clear: both;
color: #333333;
display: block;
padding: 5px 0 0; }
span.align-center {
display: block;
overflow: hidden;
clear: both; }
span.align-center > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: center; }
span.align-center span img {
margin: 0 auto;
text-align: center; }
span.align-right {
display: block;
overflow: hidden;
clear: both; }
span.align-right > span {
display: block;
overflow: hidden;
margin: 13px 0 0;
text-align: right; }
span.align-right span img {
margin: 0;
text-align: right; }
span.float-left {
display: block;
margin-right: 13px;
overflow: hidden;
float: left; }
span.float-left span {
margin: 13px 0 0; }
span.float-right {
display: block;
margin-left: 13px;
overflow: hidden;
float: right; }
span.float-right > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: right; }
code, tt {
margin: 0 2px;
padding: 0 5px;
white-space: nowrap;
border: 1px solid #eaeaea;
background-color: #f8f8f8;
border-radius: 3px; }
pre code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent; }
.highlight pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px; }
pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px; }
pre code, pre tt {
background-color: transparent;
border: none; }
sup {
font-size: 0.83em;
vertical-align: super;
line-height: 0;
}
* {
-webkit-print-color-adjust: exact;
}
@media print {
table, pre {
page-break-inside: avoid;
}
pre {
word-wrap: break-word;
}
}
</style>
<title>CentOS6.3へqmailをyumインストールしてメールを送るところまで</title>
</head>
<body>
<p>デフォルトではqmail用のレポジトリがないので、リポジトリを追加する</p>
<h3>■ yumレポジトリの追加</h3>
<pre><code># cd /etc/yum.repos.d/
# wget http://download.opensuse.org/repositories/home:/weberho:/qmailtoaster/CentOS_CentOS-6/home:weberho:qmailtoaster.repo
# mv ”home:weberho:qmailtoaster.repo” qmailtoaster.repo
</code></pre>
<h3>■qmailと関連ソフトウェアをまとめてyumでインストール</h3>
<pre><code># yum -y install qmail vpopmail daemontools —enablerepo=home_weberho_qmailtoaster
..
conflicts with postfix
</code></pre>
<p>Postfixとコンフリクトしたのでアンインストール</p>
<pre><code>$ yum remove Postfix
</code></pre>
<p>一緒に消える依存ソフトウェアにcronie等があるが、後で入るので無視して実行する。</p>
<p>気を取り直してもう一度</p>
<pre><code># yum install qmail vpopmail daemontools —enablerepo=home_weberho_qmailtoaster
...
Installed:
daemontools.x86_64 0:0.76-5.3 qmail-toaster.x86_64 0:1.03.5-16.1 vpopmail.x86_64 0:5.4.25-4.1
Dependency Installed:
cronie.x86_64 0:1.4.4-7.el6 cronie-anacron.x86_64 0:1.4.4-7.el6 crontabs.noarch 0:1.10-33.el6 libsrs2-0.x86_64 0:1.0.18-1.3 qmail-skel.noarch 0:1-1.3
ucspi-tcp.x86_64 0:0.88-2.2
</code></pre>
<p>入った。</p>
<h3>■sendmailクローンでメール送信の互換性を保つ</h3>
<pre><code># rm -f /usr/sbin/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
</code></pre>
<h3>■daemontoolsを用いたqmailの起動準備</h3>
<pre><code># mkdir /service
# mkdir /var/qmail/supervise/qmail-smtpd
# mkdir /var/qmail/supervise/qmail-send
</code></pre>
<p>※tcpserverとかは入ってた</p>
<pre><code>$ which tcpserver
/usr/bin/tcpserver
$ which tcprules
/usr/bin/tcprules
</code></pre>
<h3>■SMTPサーバの起動スクリプト(/var/qmail/supervise/qmail-smtpd/run) を作成する </h3>
<pre><code>#!/bin/sh
HOST=foo.example.jp
QUID=`id -u qmaild`
QGID=`id -g qmaild`
exec \
/usr/local/bin/tcpserver \
-H -v -R -c 50 -x /etc/tcp.smtp.cdb \
-l "$HOST" -u "$QUID" -g "$QGID" 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1
</code></pre>
<h3>■TCPサーバ用のSMTPの接続制限設定ファイル(tcp.smtp)の設定</h3>
<pre><code>/etc/tcp.smtp
127.:allow,RELAYCLIENT=""
218.223.31.12:allow,RELAYCLIENT=""
</code></pre>
<p>※tcp.smtp の 変更箇所は tcp.smtp.cdb に反映させる</p>
<pre><code>tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
</code></pre>
<h3>■qmailサービスの起動</h3>
<pre><code>ln -s /var/qmail/supervise/qmail-send /service/qmail-send
ln -s /var/qmail/supervise/qmail-smtpd /service/qmail-smtpd
sleep 5; svstat /service/*; pstree
</code></pre>
<h3>■自動起動設定をする</h3>
<p>CentOS6の場合は/etc/inittabはなく、/etc/init/svscan.conf</p>
<p>下記のファイルを無かったら作って編集する</p>
<pre><code># vim /etc/init/svscan.conf
</code></pre>
<p>--
# svscan - daemontools
#
# This service starts daemontools from the point the system is
# started until it is shut down again.</p>
<pre><code>start on runlevel [2345]
stop on shutdown
respawn
exec /usr/bin/svscanboot
--
</code></pre>
<h3>■メール送信テスト</h3>
<pre><code>$ echo "body" | mail -s "title" <メールアドレス>
</code></pre>
<h2>参考サイト</h2>
<h4>yumインストールするとこで参照</h4>
<p>http://kyuxyu.tumblr.com/post/7987689646/centos-yum-qmail</p>
<h4>設定周り</h4>
<p>http://kawa.at.webry.info/200604/article_1.html</p>
</body>
</html>Hitoshihttp://www.blogger.com/profile/05474806785446110731noreply@blogger.com0tag:blogger.com,1999:blog-5539055111148745282.post-187013113995462172013-08-14T12:14:00.002+09:002014-01-28T18:12:35.468+09:00Gitエラー「master -> origin/master (unable to update local ref)」の対応<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<style>
a {
color: #4183C4; }
a.absent {
color: #cc0000; }
a.anchor {
display: block;
padding-left: 30px;
margin-left: -30px;
cursor: pointer;
position: absolute;
top: 0;
left: 0;
bottom: 0; }
h1, h2, h3, h4, h5, h6 {
margin: 20px 0 10px;
padding: 0;
font-weight: bold;
-webkit-font-smoothing: antialiased;
cursor: text;
position: relative; }
h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;
text-decoration: none; }
h1 tt, h1 code {
font-size: inherit; }
h2 tt, h2 code {
font-size: inherit; }
h3 tt, h3 code {
font-size: inherit; }
h4 tt, h4 code {
font-size: inherit; }
h5 tt, h5 code {
font-size: inherit; }
h6 tt, h6 code {
font-size: inherit; }
h1 {
font-size: 28px;
color: black; }
h2 {
font-size: 24px;
border-bottom: 1px solid #cccccc;
color: black; }
h3 {
font-size: 18px; }
h4 {
font-size: 16px; }
h5 {
font-size: 14px; }
h6 {
color: #777777;
font-size: 14px; }
p, blockquote, ul, ol, dl, li, table, pre {
margin: 15px 0; }
hr {
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;
border: 0 none;
color: #cccccc;
height: 4px;
padding: 0;
}
a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
margin-top: 0;
padding-top: 0; }
h1 p, h2 p, h3 p, h4 p, h5 p, h6 p {
margin-top: 0; }
li p.first {
display: inline-block; }
li {
margin: 0; }
ul, ol {
padding-left: 30px; }
ul :first-child, ol :first-child {
margin-top: 0; }
dl {
padding: 0; }
dl dt {
font-size: 14px;
font-weight: bold;
font-style: italic;
padding: 0;
margin: 15px 0 5px; }
dl dt:first-child {
padding: 0; }
dl dt > :first-child {
margin-top: 0; }
dl dt > :last-child {
margin-bottom: 0; }
dl dd {
margin: 0 0 15px;
padding: 0 15px; }
dl dd > :first-child {
margin-top: 0; }
dl dd > :last-child {
margin-bottom: 0; }
blockquote {
border-left: 4px solid #dddddd;
padding: 0 15px;
color: #777777; }
blockquote > :first-child {
margin-top: 0; }
blockquote > :last-child {
margin-bottom: 0; }
table {
padding: 0;border-collapse: collapse; }
table tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0; }
table tr:nth-child(2n) {
background-color: #f8f8f8; }
table tr th {
font-weight: bold;
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
table tr td {
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
table tr th :first-child, table tr td :first-child {
margin-top: 0; }
table tr th :last-child, table tr td :last-child {
margin-bottom: 0; }
img {
max-width: 100%; }
span.frame {
display: block;
overflow: hidden; }
span.frame > span {
border: 1px solid #dddddd;
display: block;
float: left;
overflow: hidden;
margin: 13px 0 0;
padding: 7px;
width: auto; }
span.frame span img {
display: block;
float: left; }
span.frame span span {
clear: both;
color: #333333;
display: block;
padding: 5px 0 0; }
span.align-center {
display: block;
overflow: hidden;
clear: both; }
span.align-center > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: center; }
span.align-center span img {
margin: 0 auto;
text-align: center; }
span.align-right {
display: block;
overflow: hidden;
clear: both; }
span.align-right > span {
display: block;
overflow: hidden;
margin: 13px 0 0;
text-align: right; }
span.align-right span img {
margin: 0;
text-align: right; }
span.float-left {
display: block;
margin-right: 13px;
overflow: hidden;
float: left; }
span.float-left span {
margin: 13px 0 0; }
span.float-right {
display: block;
margin-left: 13px;
overflow: hidden;
float: right; }
span.float-right > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: right; }
code, tt {
margin: 0 2px;
padding: 0 5px;
white-space: nowrap;
border: 1px solid #eaeaea;
background-color: #f8f8f8;
border-radius: 3px; }
pre code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent; }
.highlight pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px; }
pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px; }
pre code, pre tt {
background-color: transparent;
border: none; }
sup {
font-size: 0.83em;
vertical-align: super;
line-height: 0;
}
* {
-webkit-print-color-adjust: exact;
}
@media print {
table, pre {
page-break-inside: avoid;
}
pre {
word-wrap: break-word;
}
}
</style>
<title>■変更履歴の削除 ※他のgitプロセスが動いていない状態で行うこと</title>
</head>
<body>
<p>Jenkinsのビルド時に実行しているgit pullでタイトルのエラーを吐いていて、
Stackoverflowの回答を元にGitのクリーンアップしたら直ったのでメモ</p>
<h3>■変更履歴の削除 ※他のgitプロセスが動いていない状態で行うこと</h3>
<pre><code>$ git gc --prune=now
</code></pre>
<h3>■リモートリポジトリの削除ブランチをローカルからも消す</h3>
<pre><code>$ git remote prune origin
</code></pre>
<p>この後再ビルドしたら、ローカルのゴミ削除が履歴にずら〜っと</p>
<pre><code>deleting .git/objects/6f/dfa256da223jrl38rflf
…
</code></pre>
<h3>参考ページ</h3>
<h6><a href="http://stackoverflow.com/questions/2998832/git-pull-fails-unalble-to-resolve-reference-unable-to-update-local-ref">git pull fails "unalble to resolve reference" "unable to update local ref" - Stack Overflow</a></h6>
<p><a href="http://cdn8.atwikiimg.com/git_jp/pub/Documentation.ja/user-manual.html">Git ユーザマニュアル (バージョン 1.5.3 以降用)</a></p>
<p><a href="https://www.kernel.org/pub/software/scm/git/docs/">git(1)</a></p>
</body>
</html>Hitoshihttp://www.blogger.com/profile/05474806785446110731noreply@blogger.com0tag:blogger.com,1999:blog-5539055111148745282.post-79007456636112910832013-08-05T14:44:00.001+09:002014-01-28T18:12:56.133+09:00CentOS6.3(on Azure)環境のセットアップ(PHP,Apache,MySQLほかインストール)<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<style>
a {
color: #4183C4; }
a.absent {
color: #cc0000; }
a.anchor {
display: block;
padding-left: 30px;
margin-left: -30px;
cursor: pointer;
position: absolute;
top: 0;
left: 0;
bottom: 0; }
h1, h2, h3, h4, h5, h6 {
margin: 20px 0 10px;
padding: 0;
font-weight: bold;
-webkit-font-smoothing: antialiased;
cursor: text;
position: relative; }
h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;
text-decoration: none; }
h1 tt, h1 code {
font-size: inherit; }
h2 tt, h2 code {
font-size: inherit; }
h3 tt, h3 code {
font-size: inherit; }
h4 tt, h4 code {
font-size: inherit; }
h5 tt, h5 code {
font-size: inherit; }
h6 tt, h6 code {
font-size: inherit; }
h1 {
font-size: 28px;
color: black; }
h2 {
font-size: 24px;
border-bottom: 1px solid #cccccc;
color: black; }
h3 {
font-size: 18px; }
h4 {
font-size: 16px; }
h5 {
font-size: 14px; }
h6 {
color: #777777;
font-size: 14px; }
p, blockquote, ul, ol, dl, li, table, pre {
margin: 15px 0; }
hr {
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;
border: 0 none;
color: #cccccc;
height: 4px;
padding: 0;
}
a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
margin-top: 0;
padding-top: 0; }
h1 p, h2 p, h3 p, h4 p, h5 p, h6 p {
margin-top: 0; }
li p.first {
display: inline-block; }
li {
margin: 0; }
ul, ol {
padding-left: 30px; }
ul :first-child, ol :first-child {
margin-top: 0; }
dl {
padding: 0; }
dl dt {
font-size: 14px;
font-weight: bold;
font-style: italic;
padding: 0;
margin: 15px 0 5px; }
dl dt:first-child {
padding: 0; }
dl dt > :first-child {
margin-top: 0; }
dl dt > :last-child {
margin-bottom: 0; }
dl dd {
margin: 0 0 15px;
padding: 0 15px; }
dl dd > :first-child {
margin-top: 0; }
dl dd > :last-child {
margin-bottom: 0; }
blockquote {
border-left: 4px solid #dddddd;
padding: 0 15px;
color: #777777; }
blockquote > :first-child {
margin-top: 0; }
blockquote > :last-child {
margin-bottom: 0; }
table {
padding: 0;border-collapse: collapse; }
table tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0; }
table tr:nth-child(2n) {
background-color: #f8f8f8; }
table tr th {
font-weight: bold;
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
table tr td {
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
table tr th :first-child, table tr td :first-child {
margin-top: 0; }
table tr th :last-child, table tr td :last-child {
margin-bottom: 0; }
img {
max-width: 100%; }
span.frame {
display: block;
overflow: hidden; }
span.frame > span {
border: 1px solid #dddddd;
display: block;
float: left;
overflow: hidden;
margin: 13px 0 0;
padding: 7px;
width: auto; }
span.frame span img {
display: block;
float: left; }
span.frame span span {
clear: both;
color: #333333;
display: block;
padding: 5px 0 0; }
span.align-center {
display: block;
overflow: hidden;
clear: both; }
span.align-center > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: center; }
span.align-center span img {
margin: 0 auto;
text-align: center; }
span.align-right {
display: block;
overflow: hidden;
clear: both; }
span.align-right > span {
display: block;
overflow: hidden;
margin: 13px 0 0;
text-align: right; }
span.align-right span img {
margin: 0;
text-align: right; }
span.float-left {
display: block;
margin-right: 13px;
overflow: hidden;
float: left; }
span.float-left span {
margin: 13px 0 0; }
span.float-right {
display: block;
margin-left: 13px;
overflow: hidden;
float: right; }
span.float-right > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: right; }
code, tt {
margin: 0 2px;
padding: 0 5px;
white-space: nowrap;
border: 1px solid #eaeaea;
background-color: #f8f8f8;
border-radius: 3px; }
pre code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent; }
.highlight pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px; }
pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px; }
pre code, pre tt {
background-color: transparent;
border: none; }
sup {
font-size: 0.83em;
vertical-align: super;
line-height: 0;
}
* {
-webkit-print-color-adjust: exact;
}
@media print {
table, pre {
page-break-inside: avoid;
}
pre {
word-wrap: break-word;
}
}
</style>
<title>■タイムゾーンをJST-9に設定</title>
</head>
<body>
<pre><code>$ cat /etc/redhat-release
CentOS release 6.3 (Final)
</code></pre>
<h3>■タイムゾーンをJST-9に設定</h3>
<pre><code>$ sudo cp /usr/share/zoneinfo/Japan /etc/localtime
</code></pre>
<h3>■PHP5.3.3及びApache2.2.15のインストール</h3>
<p>yumの標準パッケージの確認</p>
<pre><code># yum list php
Available Packages
php.x86_64 5.3.3-14.el6_3 updates
</code></pre>
<p>バージョンが合ってることを確認後</p>
<pre><code># yum install php
# php -v
PHP 5.3.3 (cli) (built: Jul 3 2012 16:53:21)
</code></pre>
<p>Apacheもバンドルされてるので確認</p>
<pre><code># httpd -v
Server version: Apache/2.2.15 (Unix)
</code></pre>
<p>Apacheの起動</p>
<pre><code># apachectl -k start
httpd: Could not reliably determine the server's fully qualified domain name, using 100.80.94.7 for ServerName
</code></pre>
<p>httpd.confのServerNameにHOSTNAMEを設定</p>
<pre><code># cat /etc/sysconfig/network
</code></pre>
<p>もしくは</p>
<pre><code># hostname
</code></pre>
<p>でHOSTNAMEを調べ、httpd.confに設定する</p>
<pre><code>ServerName hoge-vm:80
</code></pre>
<h3>■MySQL5.5.19のインストール</h3>
<p>MySQL5.5.19(バージョン指定)のRPMを取得
参考:http://christina04.blog.fc2.com/blog-entry-243.html</p>
<pre><code># cd /usr/local/src
# wget http://downloads.skysql.com/archives/mysql-5.5/MySQL-client-5.5.19-1.el6.x86_64.rpm
# wget http://downloads.skysql.com/archives/mysql-5.5/MySQL-shared-5.5.19-1.el6.x86_64.rpm
# wget http://downloads.skysql.com/archives/mysql-5.5/MySQL-server-5.5.19-1.el6.x86_64.rpm
# wget http://downloads.skysql.com/archives/mysql-5.5/MySQL-devel-5.5.19-1.el6.x86_64.rpm
</code></pre>
<p>取得したRPMからインストール</p>
<pre><code># rpm -ivh MySQL-client-5.5.19-1.el6.x86_64.rpm
# rpm -ivh MySQL-shared-5.5.19-1.el6.x86_64.rpm
# rpm -ivh MySQL-server-5.5.19-1.el6.x86_64.rpm
</code></pre>
<p>ここで<code>MySQL-server-5.5.19-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.67-1.el6_3.x86_64</code>という競合エラーがでたので、mysql-libsをアンインストール</p>
<pre><code># yum remove mysql-libs
</code></pre>
<p>依存関係の他のものが消えちゃうらしいので、下記インストール</p>
<pre><code># wget http://downloads.skysql.com/archives/mysql-5.5/MySQL-shared-compat-5.5.19-1.el6.x86_64.rpm
rpm -ivh MySQL-shared-compat-5.5.19-1.el6.x86_64.rpm
</code></pre>
<p>再度、</p>
<pre><code># rpm -ivh MySQL-server-5.5.19-1.el6.x86_64.rpm
</code></pre>
<p>OK!</p>
<pre><code># rpm -ivh MySQL-devel-5.5.19-1.el6.x86_64.rpm
</code></pre>
<p>一旦確認</p>
<pre><code># mysql --version
mysql Ver 14.14 Distrib 5.5.19, for Linux (x86_64) using readline 5.1
</code></pre>
<p>OK!</p>
<h3>■MySQLの設定</h3>
<p>インストールが終わったのでmy.cnf の作成</p>
<pre><code>$ sudo cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
</code></pre>
<p>サービスの起動</p>
<pre><code>$ sudo /etc/init.d/mysql start
Starting MySQL....... SUCCESS!
$ sudo mysql -u root
</code></pre>
<h3>■Memcached1.4.4とPECL Memcacheのインストール</h3>
<p>yumにあるか調べる</p>
<pre><code># yum list memcached php-pecl-memcache
memcached.x86_64 1.4.4-3.el6 @base
php-pecl-memcache.x86_64 3.0.5-4.el6 @base
</code></pre>
<p>望みのバージョンだったのでそのまま<code>yum install</code></p>
<pre><code>$ sudo yum install memcached php-pecl-memcache
</code></pre>
<p>複数プロセス起動設定
プロセス管理用ファイルの複製
$ sudo /etc/rc.d/init.d/memcached start</p>
<p>するとmemcached.pidが作られるのでそれをプロセス数(ポート)分コピー</p>
<pre><code>$ sudo cp -p /var/run/memcached/memcached.pid /var/run/memcached/memcached_11211.pid
$ sudo cp -p /var/run/memcached/memcached.pid /var/run/memcached/memcached_11212.pid
</code></pre>
<p>設定ファイルの複製&編集</p>
<pre><code>$ sudo cp -p /etc/sysconfig/memcached /etc/sysconfig/memcached_11211
$ sudo cp -p /etc/sysconfig/memcached /etc/sysconfig/memcached_11212
$ sudo vi /etc/sysconfig/memcached_11211
PORT="11211"
USER="memcached"
MAXCONN="50000"
CACHESIZE="512"
OPTIONS=""
</code></pre>
<p>もう一方のポートも同じように設定</p>
<pre><code>$ sudo vi /etc/sysconfig/memcached_11212
PORT="11212"
USER="memcached"
MAXCONN="50000"
CACHESIZE="512"
OPTIONS=""
</code></pre>
<p>起動スクリプトの複製</p>
<pre><code>$ sudo cp -p /etc/rc.d/init.d/memcached /etc/rc.d/init.d/memcached_11211
$ sudo cp -p /etc/rc.d/init.d/memcached /etc/rc.d/init.d/memcached_11212
</code></pre>
<p>起動スクリプトの編集(memcached_11212も同じように編集)</p>
<pre><code>$ sudo vi /etc/rc.d/init.d/memcached_11211
if [ -f /etc/sysconfig/memcached_11211 ];then
. /etc/sysconfig/memcached_11211
fi
# Check that networking is up.
. /etc/sysconfig/network
if [ "$NETWORKING" = "no" ]
then
exit 0
fi
RETVAL=0
prog="memcached"
pidfile=${PIDFILE-/var/run/memcached/memcached_11211.pid}
lockfile=${LOCKFILE-/var/lock/subsys/memcached}
</code></pre>
<h3>■Gitのインストール</h3>
<pre><code># yum install git
</code></pre>
<h3>■OSアカウントの追加</h3>
<h4>管理用アカウントの作成</h4>
<p>wheelグループへのsudo権限付与する</p>
<pre><code># visudo
...
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
↑コメントを外す
</code></pre>
<h4>管理用アカウントをwheelへ追加</h4>
<pre><code># useradd -G wheel hoge
# passwd hoge
Changing password for user hoge.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
# usermod -G wheel hoge
</code></pre>
<p>確認</p>
<pre><code># id hoge
uid=500(hoge) gid=500(hoge) 所属グループ=500(hoge),10(wheel)
</code></pre>
</body>
</html>Hitoshihttp://www.blogger.com/profile/05474806785446110731noreply@blogger.com0tag:blogger.com,1999:blog-5539055111148745282.post-79278918012197238372013-07-30T12:00:00.000+09:002013-08-05T14:45:30.714+09:00Jenkins+Githubでの自動デプロイ設定<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<span style="line-height: 1.428571em;">Jenkinsの管理画面は</span>日本語だとわかりづらいので英語設定で。</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<br clear="none" /></div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
◎自動デプロイ設定までの流れ</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: 0.2857em 0px 0.714285em 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">ユーザー作成</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">ユーザー権限</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">Github連携用プラグインのインストール/設定</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">ジョブの作成</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">ジョブへのユーザー追加</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">SSH鍵の作成</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">Jenkins <-> Github連携</li>
</ol>
</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<br clear="none" /></div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
■ユーザーの作成</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: 0.2857em 0px 0.714285em 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">[Manage Jenkins] -> [Configure Global Security]</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">"<span style="line-height: 1.428571em;">Enable security</span>"にチェックを入れると詳細設定が開くので<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: 0px 0px 0px 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;"><strong style="line-height: 1.428571em;">Security Realm</strong>のJenkins's own user databaseを選択</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">"Allow users to sign up"をチェック</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;"><strong style="line-height: 1.428571em;">Authorization</strong>の"Project-based Matrix Authorization Strategy"を選択</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">"admin"と"github"の2つのユーザーを作成("Add")<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: 0px 0px 0px 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">adminユーザーにはすべての権限を付ける(表右の全チェックアイコンをクリック)</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">githubユーザーにはOverallのReadのみ付ける</li>
</ol>
</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">"Save"ボタンで設定保存</li>
</ol>
</li>
</ol>
<div style="border: 0px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
"Save"をクリックするとログアウトし、ログイン画面へ飛ばされるので</div>
</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<img alt="" data-mce-src="https://www.evernote.com/shard/s3/res/9cf8dfb7-590c-4b4a-8968-7b21f5067ac9/Screen%20Shot%202013-06-18%20at%2014.00.02.png?resizeSmall&width=833" data-mce-style="line-height: 1.428571em;" name="9cf8dfb7-590c-4b4a-8968-7b21f5067ac9" src="https://www.evernote.com/shard/s3/res/9cf8dfb7-590c-4b4a-8968-7b21f5067ac9/Screen%20Shot%202013-06-18%20at%2014.00.02.png?resizeSmall&width=833" style="border: 0px; cursor: default; line-height: 1.428571em; margin: 0.857412em 0px 0px; padding: 0px;" /></div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
"Create an account"からログインアカウントを作成する。</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
作成したアカウントでログイン後、先ほど作成したadminとgithubユーザーのログインアカウントを作成</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
■ログインアカウントの作成</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: 0.2857em 0px 0.714285em 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">[Manage Jenkins] -> [Manage Users]</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">"Create User"からadminとgithubユーザー作成</li>
</ol>
<div style="border: 0px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
■Github連携用プラグインのインストール/設定</div>
<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: -0.428571em 0px 0.714285em 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">[Manage Jenkins] -> [Manage Plugins]</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">"Available"タブをクリック</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">次のプラグインをインストール</li>
</ol>
<ul style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: 0.2857em 0px 0.714285em 2em; padding: 0px;">
<li data-mce-style="list-style-type: none;" style="border: 0px; line-height: 1.428571em; list-style-type: none; margin: 0px; padding: 0px;"><ul style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: 0px 0px 0px 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">Publish Over SSH Plugin</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">GitHub Plugin</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">GitHub API Plugin</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">Git Plugin</li>
</ul>
</li>
</ul>
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
■ジョブの作成</div>
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: 0.2857em 0px 0.714285em 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">TOPの"create new jobs"からジョブ作成画面へ</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">ジョブを作成<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: 0px 0px 0px 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">ジョブ名(プロジェクト名)を入力</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">"Build a free-style software project"を選択し、"OK"ボタンを押下</li>
</ol>
</li>
</ol>
</div>
</div>
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<div style="border: 0px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
■ジョブへのユーザー追加</div>
<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: -0.428571em 0px 0.714285em 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">TOPから先ほど作成したジョブをクリック</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">メニューの"Configure"をクリックして設定画面へ</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">"<span style="line-height: 1.428571em;">Enable project-based security"をチェック</span></li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">"admin"と"github"の2つのユーザーを作成("Add")<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: 0px 0px 0px 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">adminユーザーにはすべての権限を付ける(表右の全チェックアイコンをクリック)</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">githubユーザーにはJobのReadとBuildを付ける</li>
</ol>
</li>
</ol>
</div>
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
■SSH鍵の作成</div>
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: 0.2857em 0px 0.714285em 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">$ cd /var/lib/jenkins/</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">jenkinsユーザーでssh設定ディレクトリ作成<br clear="none" />$ sudo -u jenkins mkdir .ssh && sudo chmod 700 .ssh/</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">鍵作成のため、rootになる(標準では"jenkins"のシェルに入れないため)。</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">ssh設定ディレクトリへ移動し、鍵作成<br clear="none" /># cd .ssh/ && ssh-keygen -t rsa<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: 0px 0px 0px 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">鍵の保存場所を下記のように指定<br clear="none" />Enter file in which to save the key (/root/.ssh/id_rsa): /var/lib/jenkins/.ssh/id_rsa</li>
</ol>
</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">鍵の権限をjenkinsに変更<br clear="none" /># chown jenkins:jenkins *</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">鍵の確認/Githubへの登録<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: 0px 0px 0px 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">鍵の確認<br clear="none" /># cat /var/lib/jenkins/.ssh/id_rsa.pub</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">Githubの"Deoploy Keys"から確認した鍵を登録</li>
</ol>
</li>
</ol>
<div style="border: 0px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
■Jenkins <-> Github連携<br />
Jenkinsサーバー側</div>
<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: -0.428571em 0px 0.714285em 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">Gitからソースを持ってくるディレクトリへ移動<br clear="none" />$ cd /var/lib/jenkins/</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">jenkinsユーザーでGithubからチェックアウト出来るか確認<br clear="none" />$ sudo -u jenkins git clone <a data-mce-href="mailto:git@github.com:hoge/hoge.git" href="mailto:git@github.com:hoge/hoge.git" shape="rect" style="border: 0px; color: #047ac6; line-height: 1.428571em; margin: 0px; padding: 0px;" target="_blank">git@github.com:hoge/hoge.git</a><a data-mce-href="mailto:git@github.com:hoge/hoge.git" href="mailto:git@github.com:hoge/hoge.git" shape="rect" style="border: 0px; color: #047ac6; line-height: 1.428571em; margin: 0px; padding: 0px;" target="_blank">※</a>~/.ssh/configに記述した場合はgithub.com部分をそのHost名に変更する</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">Jenkins管理画面のジョブでGit設定<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: 0px 0px 0px 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">対象ジョブの"Configure"から、<strong style="line-height: 1.428571em;">Source Code Management</strong>のGitを選択</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">Repository URLにGithubのssh clone urlを入力</li>
</ol>
</li>
</ol>
<div style="border: 0px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
Github側</div>
<ol style="border: 0px; line-height: 1.428571em; list-style-position: outside; margin: -0.428571em 0px 0.714285em 2em; padding: 0px;">
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">対象プロジェクトの<strong style="line-height: 1.428571em;">[Service Hooks]</strong>から<strong style="line-height: 1.428571em;">Jenkins (Git plugin)</strong>を選択</li>
<li style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">Jenkins Urlに対象ジョブの"Build Now"リンクを貼り付けて"Update"</li>
</ol>
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<br clear="none" /></div>
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
■おまけ(Submoduleを使っている場合)</div>
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
$ sudo -u jenkins git submodule init<br />
Submodule 'app/Plugin/Common' (https://github.com/hoge/submodule.git) registered for path 'app/Plugin/Common'</div>
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<br clear="none" /></div>
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
$ sudo -u jenkins git submodule update</div>
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<br clear="none" /></div>
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
git submodule updateがバージョンが古くて動かなかったので(<a data-mce-href="https://help.github.com/articles/https-cloning-errors)" href="https://help.github.com/articles/https-cloning-errors%EF%BC%89" shape="rect" style="border: 0px; color: #047ac6; line-height: 1.428571em; margin: 0px; padding: 0px;" target="_blank">https://help.github.com/articles/https-cloning-errors)</a></div>
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
下記を参考に手動で最新版をインストール</div>
<div style="border: 0px; line-height: 1.428571em; margin: 0px; padding: 0px;">
http://takeshiyako.blogspot.jp/2013/01/centos-62git.html</div>
</div>
</div>
Hitoshihttp://www.blogger.com/profile/05474806785446110731noreply@blogger.com0tag:blogger.com,1999:blog-5539055111148745282.post-6098283134930162432013-07-29T11:35:00.000+09:002013-08-05T14:46:43.758+09:00CentOS6.3へのJenkinsのインストール<pre style="border: 0px; font-family: Monaco, Courier, monospace; font-size: 10px; line-height: 1.428571em; padding: 0px;" xml:space="preserve"><code style="border: 0px; font-family: Monaco, Courier, monospace; line-height: 1.428571em; margin: 0px; padding: 0px;">■リポジトリの取得と公開鍵のインポート
$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
$ sudo rpm --import <a data-mce-href="http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key" href="http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key" shape="rect" style="border: 0px; color: #047ac6; line-height: 1.428571em; margin: 0px; padding: 0px;" target="_blank">http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
</a></code></pre>
<pre style="border: 0px; font-family: Monaco, Courier, monospace; font-size: 10px; line-height: 1.428571em; padding: 0px;" xml:space="preserve"><code style="border: 0px; font-family: Monaco, Courier, monospace; line-height: 1.428571em; margin: 0px; padding: 0px;">■JDKのインストール</code>OpenJDKをインストールするため、まず取得出来るバージョンの確認
$ yum list \*java-1\* | grep open
最新版をインストール
$ sudo yum install java-1.7.0-openjdk
$ sudo yum install java-1.7.0-openjdk-devel.x86_64</pre>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
Installed:<br />
java-1.7.0-openjdk.x86_64 1:1.7.0.9-2.3.7.1.el6_3</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
java-1.7.0-openjdk-devel.x86_64 1:1.7.0.9-2.3.7.1.el6_3</div>
<pre style="border: 0px; font-family: Monaco, Courier, monospace; font-size: 10px; line-height: 1.428571em; padding: 0px;" xml:space="preserve"><code style="border: 0px; font-family: Monaco, Courier, monospace; line-height: 1.428571em; margin: 0px; padding: 0px;"><a data-mce-href="http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key" href="http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key" shape="rect" style="border: 0px; color: #047ac6; line-height: 1.428571em; margin: 0px; padding: 0px;" target="_blank"> </a></code></pre>
<pre style="border: 0px; font-family: Monaco, Courier, monospace; font-size: 10px; line-height: 1.428571em; padding: 0px;" xml:space="preserve"><code style="border: 0px; font-family: Monaco, Courier, monospace; line-height: 1.428571em; margin: 0px; padding: 0px;">■Jenkinsのインストール
$ sudo yum install jenkins</code></pre>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
Installed:<br />
jenkins.noarch 0:1.514-1.1</div>
<pre style="border: 0px; font-family: Monaco, Courier, monospace; font-size: 10px; line-height: 1.428571em; padding: 0px;" xml:space="preserve"><code style="border: 0px; font-family: Monaco, Courier, monospace; line-height: 1.428571em; margin: 0px; padding: 0px;">■Jenkinsの設定(下記の2項目)
$ sudo vi <span style="line-height: 1.428571em;">/etc/sysconfig/jenkins</span></code></pre>
<pre style="border: 0px; font-family: Monaco, Courier, monospace; font-size: 10px; line-height: 1.428571em; padding: 0px;" xml:space="preserve"><code style="border: 0px; font-family: Monaco, Courier, monospace; line-height: 1.428571em; margin: 0px; padding: 0px;">JENKINS_PORT="8080"
JENKINS_ARGS="––prefix=/jenkins"
■Apacheの設定
こんな感じ</code></pre>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
$ cat /etc/httpd/conf.d/jenkins.conf</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
<VirtualHost *:80><br />
DocumentRoot "/var/lib/jenkins"<br />
ServerName www.hoge.com<br />
ServerAlias www.hoge.com<br />
ErrorLog "/var/log/jenkins/apache-error.log"<br />
CustomLog "/var/log/jenkins/apache-access.log" common</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
ProxyRequests Off<br />
ProxyPreserveHost on<br />
ProxyPass /jenkins http://127.0.0.1:8080/jenkins<br />
ProxyPassReverse /jenkins http://127.0.0.1:8080/jenkins<br />
<Proxy http://localhost:8080/jenkins*><br />
Order deny,allow<br />
Allow from all<br />
</proxy><br />
</VirtualHost></div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
■Jenkinsの起動</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
$ sudo service jenkins start</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
<br /></div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin-bottom: 0.714285em; padding: 0px;">
これで、http://www.hoge.com:8080/へアクセス</div>
<pre style="border: 0px; font-family: Monaco, Courier, monospace; font-size: 10px; line-height: 1.428571em; padding: 0px;" xml:space="preserve"><code style="border: 0px; font-family: Monaco, Courier, monospace; line-height: 1.428571em; margin: 0px; padding: 0px;"><a data-mce-href="http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key" href="http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key" shape="rect" style="border: 0px; color: #047ac6; line-height: 1.428571em; margin: 0px; padding: 0px;" target="_blank"> </a></code></pre>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<br clear="none" />
<img alt="" data-mce-src="https://www.evernote.com/shard/s3/res/5684404a-9386-4171-a4e2-ef93ec7198ad/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013-05-16%2018.43.45.png?resizeSmall&width=833" name="5684404a-9386-4171-a4e2-ef93ec7198ad" src="https://www.evernote.com/shard/s3/res/5684404a-9386-4171-a4e2-ef93ec7198ad/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013-05-16%2018.43.45.png?resizeSmall&width=833" style="border: 0px; cursor: default; margin: 0px; padding: 0px;" /></div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<br clear="none" /></div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
■おまけ①(Jenkinsの常駐化)</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
$ sudo chkconfig jenkins on</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<br clear="none" /></div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
確認</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
$ /sbin/chkconfig --list | grep jenkins</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<br clear="none" /></div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
■おまけ②(jenkinsユーザーのログインシェル設定)</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
$ sudo usermod -s /bin/bash jenkins</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
<br clear="none" /></div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
これをしておくとjenkinsユーザーでシェルを実行する時に便利</div>
<div style="border: 0px; font-family: Helvetica, Arial, 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.428571em; margin: 0px; padding: 0px;">
※ sudo -u jenkinsでも出来るけどメンドイ</div>
Hitoshihttp://www.blogger.com/profile/05474806785446110731noreply@blogger.com0tag:blogger.com,1999:blog-5539055111148745282.post-1892018987842173022013-04-15T15:30:00.001+09:002013-04-15T15:30:33.553+09:00GitHubの手習い# 最初のコミット<br />
git init<br />
git add Test/hello.php <br />
git commit -m 'test'<br />
git remote add origin git<br />
git push -u origin master<br />
<br />
# 修正<br />
vi Test/hello.php <br />
git add Test/hello.php <br />
git commit -m 'test2'<br />
git push -u origin masterHitoshihttp://www.blogger.com/profile/05474806785446110731noreply@blogger.com0tag:blogger.com,1999:blog-5539055111148745282.post-75115072543235336952012-11-06T21:54:00.000+09:002012-11-06T21:54:08.242+09:00XcodeでのiPhoneアプリ開発で遭遇したエラーたち(追加予定)<br />
<ol>
<li>実機でrunした時のみスプラッシュから進まない</li>
</ol>
'Running {APP名} on {実機デバイス名}'の状態から進まない場合は、<br />
FrameworkがiOSの特定のバージョンでしか使えない可能性を考える。<br />
<br />
<br />
<blockquote class="tr_bq">
dyld`dyld_fatal_error:<br />0x2fe01080: trap<br />0x2fe01084: mov r0, r0<br />これはiOS 5以降にしか対応していないフレームワークなどを使用してiOS5以前をターゲットにしていることが原因の一つの場合があります。<br />たとえば、GLKit.frameworkなどのフレームワークを使用している場合などです。<br />このフレームワークを使用してiOS5以前のターゲットのプロジェクトを作成すると実機で上記のエラーが発生して起動できなくなります。</blockquote>
<br />
<blockquote class="tr_bq">
Xcode 4.4.1 - iPhone実機で起動直後に原因不明のエラー dyld`dyld_fatal_error: </blockquote>
<blockquote class="tr_bq">
</blockquote>
http://omegapoint.cocolog-nifty.com/blog/2012/09/xcode-441---iph.html
Hitoshihttp://www.blogger.com/profile/05474806785446110731noreply@blogger.com0tag:blogger.com,1999:blog-5539055111148745282.post-20694462335822420712012-08-10T15:31:00.000+09:002013-04-15T15:32:48.315+09:00Homebrewでバージョン指定してMySQLをインストール<br />
<br />
$ unset TMPDIR<br />
$ sudo mysql_install_db --verbose --user=hogehoge --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmpHitoshihttp://www.blogger.com/profile/05474806785446110731noreply@blogger.com0tag:blogger.com,1999:blog-5539055111148745282.post-47321843592740300322011-09-08T17:49:00.000+09:002011-09-15T01:48:26.315+09:00.htaccessで、メンテナンスファイルが存在するときのみメンテナンス表示にする方法以下の設定を.htaccessに書いておけば、あとはmaintenance.htmlの上げ下げだけで
メンテナンス中にしたり、公開したり出来ますよ。
<pre class="prettyprint">
<IfModule mod_rewrite.c>
#
# 諸々の設定
#
# maintenance
RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteRule ^.*$ - [R=503,L]
</IfModule>
ErrorDocument 503 /maintenance.html
</pre>Hitoshihttp://www.blogger.com/profile/05474806785446110731noreply@blogger.com0tag:blogger.com,1999:blog-5539055111148745282.post-24298598147672686532011-03-21T21:24:00.000+09:002013-04-15T15:29:22.591+09:00CakePHP + Basic認証な環境で特定のコントローラーのみ認証解除する方法下記のディレクティブを追加<br />
<br />
<pre># 特定のコントローラーのみBasic認証解除
<Directory ~ /var/www/hoge/app/webroot/api_*>
Satisfy Any
Order allow,deny
Allow from All
</Directory>
</pre><div><br />
</div>Hitoshihttp://www.blogger.com/profile/05474806785446110731noreply@blogger.com0tag:blogger.com,1999:blog-5539055111148745282.post-73502808686979497582011-03-10T02:11:00.003+09:002011-03-10T02:14:10.805+09:00SlideShare:『TitaniumによるiPhone/Androidアプリ開発』Check out this SlideShare Presentation: <br />
<div id="__ss_5897186" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/kurain/titanium-i" title="TitaniumによるiPhone/Androidアプリ開発">TitaniumによるiPhone/Androidアプリ開発</a></strong><object height="355" id="__sse5897186" width="425"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=titaniumintroduction-101124195037-phpapp01&stripped_title=titanium-i&userName=kurain" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse5897186" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=titaniumintroduction-101124195037-phpapp01&stripped_title=titanium-i&userName=kurain" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><br />
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/kurain">kurain</a>.</div></div>Hitoshihttp://www.blogger.com/profile/05474806785446110731noreply@blogger.com0