NixOSをインストール

NixOSはパッケージマネージャNixを使ったLinuxOS。Nixの特徴は以下。

  • 古いバージョンと新しいバージョンを共存できる
  • アップデートのとき上書きしないので安全
  • 一般ユーザでもインストールできる

 
ここでは、ここからダウンロードしたnixos-0.1pre12862-i686-linux.isoを使った。

cdboot

2番目のインストーラから起動すると、ログインプロンプトになるのでrootでログインする。パスワードはそのままリターンする。これは完全なインストーラではないので自分でパーティションなどの作成をしないとならない。ここではハードディスクは最初から空で全部を利用することを想定している。

まずfdiskを使って、2つのパーティションを作る。1つはメインのパーティションでもうひとつはスワップ。

# fdisk /dev/sda
ここで2つ作る。
#

メインのパーティションをext3でフォーマットする。ラベル名をnixosにする。
# mke2fs -j -L nixos /dev/sda1

スワップを作る。
# mkswap -L swap /dev/sda2

メインのパーティションを/mntにマウントする。
# mount LABEL=nixos /mnt

デフォルトの設定ファイルを作成する。
# mkdir -p /mnt/etc/nixos
# nixos-hardware-scan > /mnt/etc/nixos/configuration.nix

デフォルトのままだとインストールに失敗するので、編集する。
# nano /mnt/etc/nixos/configuration.nix
以下が編集した結果。太字は追加したり直した部分。

 
以下のコマンドでインストールを開始する。
# nixos-install

正常に終了したらリブートする。
# reboot

ハードディスクからブートすると以下のようなgrub画面になる。
nixboot

起動後うまく動かない場合は、再びCDから起動し、configuration.nixを編集してから、nixos-installすればいいようだ。

Visual C++でSQLiteを使う

SQLiteはデータベースです。データベースというと一般的にはサーバですが、SQLiteはただのライブラリでアプリケーションに組み込んで使えます。SQLiteのソースコードはamalgamationされている状態で提供されています。amalgamationとは、全部のソースコードを1つのファイルにまとめることのようです。amalgamationで提供されるファイルは、Cのソースファイルが1つとヘッダ2つだけしかありませんので簡単に既存のプロジェクトに組み入れることができます。

ここではVisual C++ ver 6でダイアログベースのアプリケーションを作成して、SQLiteを組み込んでみます。

DBを作成する

最初にデータベースを作成します。SQLiteのダウンロードページからPrecompiled Binaries For Windowsの中のコマンドラインツールをダウンロードして解凍します。ここではhsqlite-3_6_6_2.zipをダウンロードしました。sqlite3.exeというファイルが解凍されるので、これを以下のようにコマンドラインから起動して、データベースを作成します。

これでtestdb.dbというファイルができます。
 

AppWizardでダイアログベースアプリを作成

VC6でプロジェクトを作成します。
 

SQLiteのamalgamationソースコードを組み込む

SQLiteのダウンロードページからamalgamationのソースコードをダウンロード、ここではsqlite-amalgamation-3_6_6_2.zipをダウンロードしました。

ダウンロードしたファイルを解凍して中の3つのファイル,sqlite3.c,sqlite3.h,sqlite3ext.hをプロジェクトフォルダにコピーしてから、VC6で[プロジェクト][プロジェクトへ追加][ファイル]を選択して、これらのファイルを追加します。

sqlite3.cがプリコンパイルを使用しないようにプロジェクトの設定を変更します。

ビルドして、エラーにならないか確認します。ウォーニングはいっぱい出ます。

コーディングする

ダイアログにボタンを追加して、ハンドラを追加してコードを書きます。最初にヘッダファイルをインクルードします。

つぎにハンドラにコードを書きます。

sqlite3_open()などに渡す文字列はUTF8で渡さなければなりませんので日本語が含まれる場合は、注意する必要があります。UTF16で渡すことができるバージョンの関数もあります。
 

実行

上のプログラムを実行すると、以下のように表示されます。