[Linux]RedHatのインストールDVDをyumリポジトリとして使用する。リポジトリサーバ化編。

リポジトリを1台に集約!!
RHELに閉じた環境かつ、複数台サーバがあるならば1台をリポジトリサーバ化してしまいます。

やり方は実に簡単。

★リポジトリサーバの設定
1.Apacheの導入
リポジトリサーバはRHELのインストールメディアをこのやり方からローカルで参照できるようにしておきます。

Apacheのインストール

#yum install -y httpd

httpdの起動

#/etc/init.d/httpd start

httpdの自動起動有効化

#chkconfig httpd on

2.RHELインストールメディアのマウント、外部参照の設定

/mnt/dvdがRHELのインストールメディアのマウントポイントだとして、

#mount /dev/cdrom /mnt/dvd     ※環境に応じる

httpからアクセス可能な状態にする
アクセスurlを http://[ipアドレス]/rehl とします。

#ln -s /mnt/dvd /var/www/html/rhel

アクセスしてみてDVDのファイルが表示されればOK.
rhel-web

★他サーバの設定
1.yumコマンドでリポジトリサーバを参照できるように設定
次のようなrepoファイルを作成します。
/etc/yum.repos.d/rhel-web.repo
————————————
[rhel-web]
baseurl=http://[リポジトリサーバのIP]/rhel
enabled=1
gpgcheck=0
————————————

2.確認
yum listでリポジトリサーバが参照できていればOK.

[Linux]RedHatのインストールDVDをyumリポジトリとして使用する。ローカルリポジトリ化編。

ローカルリポジトリ化
テスト環境の構築等でRedHatEnterprseLinux(RHEL)を評価として使用している時など、RHEL公式のリポジトリは使用できないので、インストールDVDをyumリポジトリ化します。

/mnt/dvdがRHELのインストールメディアがマウントされているとして、、、

1.元のリポジトリはコメントアウトしておく

#cd /etc/yum.repo.d
#mv redhat.repo redhat.repo.org 

2.RHELのインストールメディアをリポジトリとして指定する
viなどで次のようなファイルを作成します。

/etc/yum.repos.d/rhel-dvd.repo
———————————-
[rehl-dvd]
baseurl=file:///mnt/dvd
enabled=1
gpgcheck=0
———————————-

3.確認
yum list と打ってパッケージ名が表示されればOK.

///念のための確認
yum clean all と打ってから、yum listを打ってパッケージ名が表示されればOK.

[上原ひろみ]BlueNoteTokyoライブ!

DSC_0003

サイモン側の席おすすめ!
ひろみちゃんのピアノよりも大きいドラムセットから放たれる強烈な衝撃波が味わえます。ひろみちゃん側席人気だけど、迫力ならサイモン側がぐわっとくるー

新しいアルバム!!
新春、新曲祭りだった今回のライブ。世界随一のひろみファンの皆さんも、聞きなれない新曲はいわゆるブレイクでの拍手どころがわからず・・・。ひろみちゃん、Moveを超える難しい曲って言ってたけど、素人には何が難しいのか分からない・・・。なんていうか、適当に落書きしているんだけど、遠くから見たら形のある絵が浮かびあがるアートのような、そんな曲だった。とにかく、今回も楽しいアルバムになっていそう。
さて、今のトリオでは「Voice」「Move」とタイトルがシンプルなキーワードになっていますが、次は一体!!

[上原ひろみ]ファースト・ファイヴ・イヤーズ

240
デビューから10年

デビューしてからもう10年経つんですね。僕がひろみちゃんファンになったのはSpiralの時なので2005年だったのですが、もうあの時の品川ステラボールからそんなに経つなんで・・・。
当時は、常に黒装束という奇抜な衣装でしたね。インパクトばっちりでした。

タイトル(英名):FIRST FIVE YEARS

曲目タイトル:

[Disc1]
『アナザー・マインド』/CD
アーティスト:上原ひろみ(p)
[Disc2]
『ブレイン』/CD
アーティスト:上原ひろみ(p)
[Disc3]
『スパイラル』/CD
アーティスト:上原ひろみ(p)
[Disc4]
『タイム・コントロール』/CD
アーティスト:上原ひろみ(p)
[Disc5]
『ビヨンド・スタンダード』/CD
アーティスト:上原ひろみ(p)
[Disc6]
『ファースト・ファイヴ・イヤーズ』/DVD
アーティスト:上原ひろみ(p)

そんな10年のうちの5年間にリリースした5枚のアルバムを収めたCD-BOXが2013年11月20日にリリースされるようです。
ベストではなくフルなので、それなりのお値段ですが、「サマーレインの彼方」を書かれた神舘 和典さんによるロングインタビューなどが収められるようです。
「ファースト」とつくところから、後の5年間の「セカンド」があるのでしょうか。

ひろみちゃんの動きがわからなくて寂しい
最近、ひろみちゃんのブログの更新がなく、ひろみちゃんの動きがわからなくて寂しい。
もうこの時期に告知がないということは、毎年恒例の年末日本ツアーはない・・・。予定では11月からヨーロッパのNight of The Promsという超ロングツアーを決行するらしい。
この時にひろみちゃんの元気な姿が確認できればいいな。

その次は2014年の1,2月のスケジュールが空いているので、もしかしたらこの時に日本に来てくれるかもしれない。

調律師の小沼さん
いつもひろみちゃんのピアノを調律していた小沼則仁さんが今年3月に亡くなりました。僕も最近になって知ったのですが、すごくショックでした。

早くひろみちゃんの笑顔に会いたいなー

[雑記]プロジェクト管理にRedmineを提案した結果wwwwwww

ぜんぜん定着しなかった。

前提条件を書くと、
・今のお仕事はインフラ系で、客先常駐型。
・チームは6人。僕は年齢的に3番目、チームに合流したのは3ヶ月ちょいで、一番遅い。
・プロジェクト管理ツールは既に存在するが、Redmineまで細かい運用はできない。
・プロジェクト管理にはエクセルを使用している。
・RedmineはLAN内の僕のPCにインストールしてお試し運用。
・ネットへの接続にはVPNを使用していて、VPN接続中はRedmineへの接続は不可。
・チーム内の人たちは1,2人を除いてRedmineの存在は知っていた。

なぜ、定着しなかったか。。。
まず、前提条件として、セキュアなネット環境のため、VPNに接続しているとLAN側のPCにアクセスできなくなるというのが一番大きかったかも。
そのため、ある時間帯を設けてRedmineの運用したが、アクセスしてくれる人はほぼなし。とにかく1週間くらい毎日「使ってちょうだい」って言いつづけたけど、もうぼっち運用って感じ。

お客さん側には既にプロジェクト管理方法が存在して、わざわざ新しいツールを使用するというのは、二重管理することになり、なかなか定着しなかったのも原因。

PGとSEのプロジェクト管理のミスマッチ
Redmineの良さを分かる人なら、Redmineがプログラマーだけのツールではないというのはわかってもらえるはず。特に今の仕事はインフラ系のお仕事なので、PGとほぼ技術的な会話は変わらない。なので、Redmineは肌に合うと思ったのだが、なんで使わないのだろうか。

メンバーの問題?
一番遅くチームに合流した僕が提案したってのもあるのだろうけど、やっぱり既存のやり方で特に問題があったりしていないし、ちゃんと課題管理表とかもあってデイリーで情報を共有する場もあるので、あまりツールへの需要は薄かったのかも。僕はそういう意味ではプロジェクト管理への意識が他の人よりも高いのかもしれないけど、上の立場の人間ではないので、Redmineを使うのを強制するのは難しいと感じた。

ぼっち運用
今のチームは大きいプロジェクトの一端を担っていて、他にもチームがある。ただし、見たところプロジェクト管理ツールを使用してはいないようだし、かといって、情報を共有しているネットの掲示板のようなものもあるにはあるけど、全然活用していない。ぜーんぶエクセル管理!!。当然、バージョン管理システムもなし。やっている技術は新しいサーバーとか高価なストレージとかいろいろいじっている割には、プロジェクトはアナログなのね。しかし、僕は自分のために、備忘録やTODO、スケジュールなどの管理にRedmineを使っていこうと思っている。

[雑記]プロジェクト管理って難しい。

ぼっちRedmine
Redmineをチームで導入を提案して、試験的に導入してみたのですが、あまり興味を持ってもらえず、ぼっちRedmineになりそう。
Redmineをひとりでやってるのって非常にむなしいんだよなぁ。

プロジェクト管理ツールを導入することは、プロジェクトを進めて行く上で非常に有用だと思うのですが、チーム全員の協力がないとなかなか難しいなぁって感じます。
チームリーダーがデイリーでスケジュール言ってくるから、それだとスケジュールが見えないから、なんとか提案してみたのだが。今の現場は、僕が入って日が浅いので、なかなか難しいな。

[C#]複数のExcelのブック(シート)をマージする。

複数のExcelブックのシートをマージする。
複数のブック上のシートを1つのファイルにマージさせる方法が探しても意外と見つからずとりあえず作ってみた。
VBAであればネットに少しあるみたい。

動作環境
Windows7
Excel 2007/2010(必須)

エクセルのAPIはCOM
C#でのCOM参照は使いづらい。本来、.NetFrameworkで使用されるのが前提になっていないからなのか、APIの情報が自動ででてこない。要は式がDynamicになってしまう。
例えば、全体をtry-catchで囲っているのに、APIがdynamic型なので、次の場合、個別に対応が必要になる。

try
{
    int TabColor = 0;   // int型
    try
    {
        TabColor = ws.Tab.Color;   // エクセルAPIは有効な場合は数値、無効値は"False"が入る
    }
    catch
    {
        TabColor = 0;     // 無効値("False")がintに代入しようとしたため例外が発生する。その場合、0とする。
    }
    // 処理
}
catch
{
    // 処理
}

コツは一つのApplicationインスタンス内で全て行う。
当初、ファイル単位でApplication(Microsoft.Office.Interop.Excel.Applicationクラス)を起こして、Workbook型のインスタンスを作って、Worksheetをcopyしていたが、うまくいかず、、、。エクセルは一つのアプリケーションが起動していると、そのエクセルで次のファイルを起動する、という仕様になっていて、このエクセル内で開いているファイルならコピーができる。ということは、ひとつのApplicationインスタンス内でやってみればうまくいくんじゃないかなぁって思って、やってみたらうまくいった。

エクセルAPIを使うときの注意点。
・シートやセルのはじめのインデックスは”1″、例えば次のソースは誤り。

// A1のセルを参照
var val = ws.Cells[0,0].Value;     // [1,1]が正解

・エクセルがバックグランドで動作するので、APIを呼ぶ側のアプリケーションが異常終了するとプロセスが残る。
デバッグとかで途中で止めたり、異常終了したまま放置すると、EXCELという名前のゾンビプロセスが増殖する。
それを防ぐために、実行時に注意を促す。以下例。

if (Process.GetProcesses().Any(p => p.ProcessName.IndexOf("EXCEL") != -1))
{
    MessageBox.Show("エクセルを閉じてください!!");
    return;
}

動作画面

今回作成したソースはこちら