【CentOS】NUC(DN2820FYKH)にCentOS6.5導入準備

  • CentOS 6.5の選択
    DN2820FYKHでは、CentOS 7.0のインストール時の動作が怪しいらしく、
    先人が実施済のCentOS 6.5を下記の公式サイトから入手し、インストールします。

    http://wiki.centos.org/Download

    i386は32bit版、x86_64版は64bit版なので、x86_64を選択。
    ミラーサイトがいくつかあるので適当に。
    種類がいくつかあって、「0_README.txt」を読むと違いが確認できます。

    ファイル名用途概要
    CentOS-6.5-x86_64-LiveCD.isoインストールせずにCDから起動用(機能少)
    CentOS-6.5-x86_64-LiveDVD.isoインストールせずにCDから起動用(機能多)
    CentOS-6.5-x86_64-bin-DVD1.isoインストール用(機能多)
    CentOS-6.5-x86_64-bin-DVD2.isoインストール用(追加)DVD1のみでも可
    CentOS-6.5-x86_64-minimal.isoインストール用(機能最少)
    CentOS-6.5-x86_64-netinstall.isoインストール用(ネットワーク)

    「torrent」ファイルはネットワーク共有ソフトを使ってインストールする際に利用、
    「sum」ファイルは正しくダウンロードされたかのチェックに利用なので、無視。
    「CentOS-6.5-x86_64-bin-DVD1.iso」を選択してみました。

  • LiveUSB Creator
    DN2820FYKHにCentOSを導入するにあたり、
    USB光学ドライブあると思い込んでいたら、
    自宅にあったのはUSBフロッピーディスクドライブでした。

    新規にUSB光学ドライブ購入するのも嫌。
    とはいえ、フロッピーじゃどうにもならないので、グーグル先生に聞いてみたところ、
    USBからOSがインストールできると。
    microSDカード8GにCentOSのイメージをツールで焼いて、
    USB接続のSDカードリーダにmicroSDカードをセットして利用しました。

    ツールは「liveusb-creator-3.12.0-setup.exe」を利用しました。
    USBが接続されているドライブと焼き付けるファイルを選択するだけ。

    しかし、ここに罠があってこれで作成したUSBを使ってインストールしても
    最後の最後で下記エラーで失敗します。
    「Unable to read package metadata」

  • Unable to read package metadata 解決策
    原因は一部ファイルが正しいファイル名にならなかったから。

    USBの中を確認すると「repodata」ディレクトリがあり、その中のファイル名を修正します。
    修正対象は拡張子がない8ファイル、「repomd.xml」には修正前のファイル名と修正後のファイル名が
    ちゃんとかかれているので、それを見ながら修正します。

    修正後はgzファイルやxmlファイルになるはず。
    「TRANS.TBL」はゴミファイルなので削除。
    再度インストールを行います。

【CentOS】NUC(DN2820FYKH)入手

  • NUCのDN2820FYKH入手
    Corei3のD34010WYKHと悩みましたが、お財布都合などいろいろありDN2820FYKHにしました。
    一緒にCFD ElixirのDDL3Lの4Gメモリを購入。
    2.5インチSSDはメインPCで全く使ってなかったものを利用。
    HDMI接続なのでケーブル類も不要。
    約2万円で収まったのがありがたいです。

  • メモリとSSD装着
    裏蓋のネジは裏蓋にくっついてるタイプで
    ドライバーで回しまくってもとれないタイプでした。
    開けると中蓋があってそこに2.5インチSSDを入れるようです。
    中蓋も本体にケーブルでくっついてるので、引っ張りすぎ注意。
    中蓋をあけるとメモリとNICをつけられる場所がありました。

    NICは交換する気はないので、メモリだけ装着。

  • BIOS更新
    OSはLinuxを入れるつもりですが、DN2820FYKHにLinuxを入れる場合、
    BIOSの更新が必須なようで、まずはBIOSの更新です。

    手順は公式の「F7 BIOS Flash アップデート」で行いました。
    http://www.intel.com/jp/support/motherboards/desktop/sb/cs-034499.htm

    奇跡的に残っていた128MBのUSBメモリを利用。
    容量少ないのでフォーマットも一瞬でした。
    最新BIOSの「FY0039.BIO」をダウンロードしてコピー。

    NUCにHDMI、キーボード、USBだけをつけて起動。
    ロゴが出たらF7押下して、BIOS画面に入りました。
    BIOS画面が無駄に格好良い。

    無事に更新完了。次はOSです。
    OSはCentOS 6.5を入れる予定。

【Eclipse】Eclipse再設定

Eclipseで色々いじりすぎて復元できなくなった場合の再設定メモ。

EclipseはIndigoの3.7.2を利用しています。

  • 壊れたEclipse
    【モジュール】
    EclipseのworkplaceディレクトリからSVN管理されていないプロジェクトをコピーしてどこかに保存する。

    【設定】
    「ファイル」-「エクスポート」を選択する。
    「一般」-「設定」を選択し、「次へ」ボタンを押下する。
    全てをエクスポートにチェックを入れ、「宛先設定ファイル」を指定し、「完了」ボタンを押下する。

  • 新しいEclipse
    【モジュール】
    どこかにコピーしておいたプロジェクトを新しいworkplaceに配置。
    「ファイル」-「インポート」を選択する。
    「一般」-「既存プロジェクトをワークスペースへ」を選択し、「次へ」ボタンを押下する。
    ルート・ディレクトリの選択にチェックを入れ、プロジェクトを選択し、「完了」ボタンを押下する。
    SVN管理されているプロジェクトはチェックアウトする。

    【設定】
    「ファイル」-「インポート」を選択する。
    「一般」-「設定」を選択し、「次へ」ボタンを押下する。
    ソース設定ファイルを選択し、「完了」ボタンを押下する。

【Oracle】SQLPlusで空白除去

OracleのSQLPlusでSELECT結果をspoolでファイル出力した際、
CHAR型やVARCHAR2型の出力結果がサイズにあうように自動で空白埋めされてしまい、
想定結果ととても比較し難い。

「SET TRIMSPOOL ON」にしても空白が削除されないのは、
これが「行末のトリム処理を制御する」からのようです。
「項目ごとのトリム処理を制御する」なら便利だったのに。

色々調べてもSQLPlusの設定だけでやるのは無理なようで、
結局下記のようにパイプでつなげることにしました。

SELECT 項目1 || 't' || 項目2 || 't' || 項目3 FROM テーブル名;

TeraTeramで自動ログイン

TeraTermで接続情報を毎回手打ちして、
ログインするのが面倒なので、自動ログインします。

デスクトップでも好きな場所に「ファイル名.ttl」ファイルを作成します。
ファイルが「ttpmacro.exe」に関連付けられていない場合、
TeraTermのインストールディレクトリに存在する「ttpmacro.exe」に関連付けを行います。

ファイルの中身を記載します。

hostname = 'IPアドレスまたはホスト名'
username = 'ユーザ名'
passfile = 'D:/任意のディレクトリ/任意のファイル名'
keyfile = 'D:/任意のディレクトリ/秘密鍵のファイル名'

getpassword passfile username userpass

command = hostname
strconcat command ':22 /ssh /KR=UTF-8 /KT=UTF-8 /auth=publickey /user='
strconcat command username
strconcat command ' /passwd='
strconcat command userpass
strconcat command ' /keyfile='
strconcat command keyfile

connect command

end

初回ログインで1度パスワードを聞かれますが、
2回目からはファイルを自動参照します。

【bat】WinBatで自動ログイン

ファイルサーバにログインする際、接続情報を毎回手打ちして、
ログインするのが面倒なので、自動ログインします。

デスクトップでも好きな場所に「ファイル名.bat」ファイルを作成します。

ファイルの中身を記載します。

@echo off
SET COMMON_USR=ユーザ名
SET COMMON_PASS=パスワード

echo ホスト名ログイン中
net use ホスト名/ディレクトリ名 /USER:%COMMON_USR% %COMMON_PASS%

pause

接続できない場合、接続情報が残ってしまっていることがあるので、
コマンドプロンプト上で下記コマンドで削除します。

net use ホスト名/ディレクトリ名 /delete

【Excel】ショートカット割り当て

Excelで自作マクロの起動をショートカットで行います。

Sub AssignShortCutKey()
'
' AssignShortCutKye Macro
'
' ショートカットを割り当てる。
    
    ' F1:何もしない
    Application.OnKey "{F1}", ""

    ' CTRL+ALT+l:メニューオープン
    Application.OnKey "^%{l}", "MenuOpen"

    ' CTRL+t:カーソルトップ
    Application.OnKey "^{t}", "TopCursor"

    ' CTRL+r:赤い太枠四角線
    Application.OnKey "^{r}", "RedBox"

    ' CTRL+ALT+s:SELECT文作成
    Application.OnKey "^%{s}", "SqlSelectCreateYoko"
End Sub

【Excel】VBAフォーム表示

先ほど作成したVBAフォームはマクロで起動できるようにしておきます。

Sub MenuOpen()
'
' MenuOpen Macro
'
' メニューをオープンします。

    フォーム名.Show (vbModeless)

End Sub

【Excel】VBAフォーム追加

Excelで自作マクロの起動をフォームから行います。
まずはフォームを追加します。

VBAエディタを開き、左メニューの「VBAProject」-「フォーム」で右クリックし、
「挿入」-「ユーザーフォーム」を選択します。
後はボタンをGUIで配置します。
配置後にボタンやラジオ

次に追加したフォームで右クリックし、「コードを表示」を選択し、
コード上でボタンイベントで起動したいマクロを指定します。

Private Sub PageSettingModCall_Click()
    Call PageSetting
End Sub

Private Sub SqlInsertCreateModCall_Click()
    Call SqlInsertCreate
End Sub