github

みなさんこんにちは。CentOSで標準リポジトリにないパッケージをインストールするため、 rpmforge や dag 、 epel リポジトリをインストールするのですが、まれによくやる作業なので、ついつい手順を忘れがちです。作業するたびにGoogle先生にお伺いをたててリポジトリのURLを探してインストールするのに飽きてきました(メモれよ)。

特に、CentOSの異種バージョンで検証環境を作るのに、わざわざリポジトリファイルを探すのが面倒くさいので、次のような仕様でツールを作ってみました。もしよろしければ、githubからダウンロードして使ってみてください。

  • rpmforgeは、rpmファイルをまとめてダウンロードするようにした
  • dagとepelは、各々のアーキテクチャに合ったリポジトリファイルを作成するようにした

githubは以下になります。

[ rpmforge rpmファイルダウンローダ - FORGEGET ] https://github.com/nullpopopo/FORGEGET
[ dagリポジトリメンテナンスツール - DAGMAINTE ] https://github.com/nullpopopo/DAGMAINTE
[epelリポジトリメンテナンスツール - EPELMAINTE ] https://github.com/nullpopopo/EPELMAINTE

…続きを読む

みなさんこんにちわ。githubのアカウント作成から自作のプログラムをアップロードするまでの手順をまとめてみました。

用意するもの

• プログラム開発環境 (ここではCentOS6を前提としています)
• メールアドレス

これだけです。開発環境はroot権限のコマンドを実行できるようにしておいてください。(suコマンドでrootに昇格できるか、sudoコマンドが使える)

githubって何?

• gitのプロジェクトホスティングサービス
• 100MBまで無料で使える
• gitリポジトリを自分で作って公開できる
• WEB上から変更履歴などが参照可能
• githubで公開されている他のOSSのコードをforkして開発することが可能
• ただしバグトラッキングシステムがない
※ 出展: はてなキーワード

すべての手順を書くと長くなってしまうので、1枚のスライドにまとめてみました。それでも、1時間もあればgithubアカウント作成、リポジトリ作成、自分で作ったプログラムのアップロードまでできてしまいます。

アカウント作成方法はスライドを見てください。ここでは開発環境のサーバ側でどんな作業をするのかをまとめておきます(スライドにも書いてありますが)。

■  rpmforge リポジトリをダウンロードする
[cc lang='bash' ]wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm[/cc]

■  git パッケージをインストールする
[cc lang='bash' ]sudo yum --enablerepo=rpmforge install git[/cc]

■ SSH鍵ペアを作成する
1) すでに鍵ペアがあった場合、上書きしないように .ssh ディレクトリをバックアップする
[cc lang='bash' ]$ [ -d ${HOME}/.ssh ] && cp -pr ${HOME}/.ssh ${HOME}/DOT.ssh.$(date +%Y%m%d)[/cc]

2) ssh-keygenコマンドで鍵ペアを作成する
[cc lang='bash' ]$ ssh-keygen[/cc]
鍵ペアは、ホームディレクトリ/.ssh の下に生成されます。ホームディレクトリでlsコマンドを叩いて「そんなのねーよ」と思っても焦らないでください。「ls -la」のように、aオプションをつけると .ssh ディレクトリの存在が確認できます。sshの鍵ペアを作成したら、「id_rsa.pub」のほうをcatコマンドで開いて、マウスでクリップボードにコピーし、githubの公開鍵登録画面に貼り付けます。

成果物をアップロードしよう!

githubでアカウントを作成し、sshの公開鍵登録を行い、リポジトリを作成したあとは、開発サーバでプログラム開発してgitコマンドでアップロードしましょう。

■ 初期設定

[cc lang='bash' ]git config --global user.name "githubのユーザ名"[/cc]
[cc lang='bash' ]git config --global user.email "githubに登録したメールアドレス"[/cc]

これらは最初に1回やっておけばOKです。ただし、同じサーバで複数のgithubアカウントを切り替えて使う場合は、都度実行する必要があります。

開発サーバでリポジトリを新規作成する

例) NABEATSU というリポジトリを作成してみる

[cc lang='bash' ]mkdir NABEATSU[/cc]
[cc lang='bash' ]cd NABEATSU[/cc]
[cc lang='bash' ]git init[/cc]

リポジトリ名と開発サーバに作るディレクトリ名は必ずしも同じでなくてもよいらしいですが、後でわかりにくくなるので同じ名前にしておいたほうが無難でしょう。

READMEファイルを新規作成する

[cc lang='bash' ]touch README[/cc]
READMEファイルは、ファイル名を大文字にして作成します。この中に書き込んだテキストをローカルリポジトリにコミットし、リモートリポジトリにpushする(反映させる)までは、githubからは存在しないものとして扱われます。

READMEファイルをローカルリポジトリにコミットする

[cc lang='bash' ]git add README[/cc]
[cc lang='bash' ]git commit -m 'first commit'[/cc]
コミット後、次のページに表示するようにコミット後のメッセージをchangelogに書くよう、編集画面が出てきます。デフォルトのエディタが立ち上がるので、コミットメッセージを残しましょう。

ローカルリポジトリにgithubのリポジトリをリモートとして登録する

例) oresama アカウントで NABEATSU というリポジトリに登録する場合

[cc lang='bash' ]git remote add origin git@github.com:oresama/NABEATSU.git[/cc]
このコマンドは、リポジトリを作成して最初に実行するだけでOKです。ローカルリポジトリで何かしら編集するたびに実行する必要はありません。

ローカルリポジトリからリモートリポジトリへ修正内容を反映させる

[cc lang='bash' ]git push origin master[/cc]

ローカルリポジトリで何かしら編集し、リモートリポジトリへ反映させる都度に実行します。

自作のプログラムをアップロードしてみよう!

ここでは例として、binディレクトリの下に自作のシェルスクリプト「3.sh」を作ります。
[cc lang='bash' ]mkdir bin[/cc]
[cc lang='bash' ]cd bin[/cc]
[cc lang='bash' ]vi 3.sh[/cc]
# 成果物 3.sh を編集します

[cc lang='bash' ]cd ../[/cc]

ここまでできたら、ディレクトリの中身全部pushしてみましょう。

[cc lang='bash' ]git add *[/cc]
[cc lang='bash' ]git commit[/cc]
[cc lang='bash' ]git push -u origin master[/cc]

※ 個別のファイルをアップロードしたい場合は以下で。
[cc lang='bash' ]git add bin/3.sh[/cc]
[cc lang='bash' ]git commit[/cc]
[cc lang='bash' ]git push -u origin master[/cc]

ここまでできたら、githubの画面で確認してみてください。スライドの通りに設定したら、リポジトリ内にご自慢のプログラムがアップロードされているはずです。ね、簡単でしょう?