Easy Urpmi は Mandriva Linux のためのリポジトリ追加コマンドを簡単に生成してくれるツール(サイト)です。
Mandriva 2008.1 から、Easy Urpmi のサーバー選択が auto-detect になっていましたが、今までどおり手動で選択しました。
新しいバージョンが出始めたばかりの頃は、すべてフランス(distrib-coffee.ipsl.jussieu.fr)からダウンロードするようにしていますが、日本(ftp.riken.jp)にもパッケージが揃ったようなので設定しました。
いつもどおり、基本は riken から落とすようにして、plf パッケージのみ distrib-coffee から落とすという設定。
urpmi.addmedia 'Main' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/main/release'
urpmi.addmedia 'Contrib' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/contrib/release'
urpmi.addmedia 'Non-free' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/non-free/release'
urpmi.addmedia --update 'Main Updates' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/main/updates'
urpmi.addmedia --update 'Contrib Updates' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/contrib/updates'
urpmi.addmedia --update 'Non-free Updates' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/non-free/updates'
urpmi.addmedia 'Main Backports' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/main/backports'
urpmi.addmedia 'Contrib Backports' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/contrib/backports'
urpmi.addmedia 'Non-free Backports' 'http://ftp.riken.jp/pub/Linux/MandrivaLinux/official/2008.1/i586/media/non-free/backports'
urpmi.addmedia 'PLF Free' 'http://distrib-coffee.ipsl.jussieu.fr/pub/linux/plf/mandriva/2008.1/free/release/binary/i586'
urpmi.addmedia 'PLF Non-free' 'http://distrib-coffee.ipsl.jussieu.fr/pub/linux/plf/mandriva/2008.1/non-free/release/binary/i586'
urpmi.addmedia 'PLF Free Backports' 'http://distrib-coffee.ipsl.jussieu.fr/pub/linux/plf/mandriva/2008.1/free/backports/binary/i586'
urpmi.addmedia 'PLF Non-free Backports' 'http://distrib-coffee.ipsl.jussieu.fr/pub/linux/plf/mandriva/2008.1/non-free/backports/binary/i586'
GNU readline は文字列入力用ライブラリです。
このライブラリを使って入力を行うと、bash のように、↑キーを押すと履歴の参照が可能だったり、タブキーで入力文字列の補完が可能だったりします。
使うこと自体は初めてではありませんが、今回まじめに使ってみたので(readline/history.h の構造体や関数を確認し、履歴を利用するアプリケーションを作っていた)、そのまとめです。
GNU readline を使うには
/usr/include/readline/readline.h
/usr/include/readline/history.h
BSD や Linux ディストリビューションで提供されているパッケージなどからインストールが可能です。
上記ヘッダーファイルを使います。
文字列入力
char *readline(const char *prompt);
引数に入れた文字列を入力時のプロンプト文字列として、文字列入力を行います。
readline が入力された文字列分のメモリ領域を確保し、先頭ポインタを返してくれます。
メモリ領域の開放は自分で行う必要があります。
履歴への登録
void add_history(const char *line);
指定した文字列を履歴へ登録します。
readline から入力した文字列しか登録できないというわけではなく、好きな文字列を登録することが可能です。
履歴の読み出し、書き出し
int read_history(const char *filename)
指定した履歴ファイルを読み出します。
成功すると 0 を返します。
int write_history(const char *filename)
指定したファイルに履歴を書き出します。
成功すると 0 を返します。
履歴の参照
typedef struct _hist_entry {
char *line;
char *timestamp;
histdata_t data;
} HIST_ENTRY;
履歴はこのような構造体に保存されています。
HIST_ENTRY *current_history(void)
現在の行を返します。
HIST_ENTRY *previous_history(void)
1つ前の行を返します。
HIST_ENTRY **history_list(void)
HIST_ENTRY の配列を返します。
他に使える関数
/usr/include/readline/history.h を参照することで使い方を知ることができます。
サンプルコード
HelloReadline.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <readline/readline.h>
#include <readline/history.h>
int main(int argc, char *argv[]) {
/* ループに使うインデックスです。 */
int i = 0;
/* 入力された文字列の参照に使います。 */
char *str = NULL;
/* 履歴リストの参照に使います。 */
HIST_ENTRY **historyList = NULL;
/* 文字列入力プロンプトを表示します。 */
while(NULL != (str = readline("input "))) {
/* 何も入力されなかった場合は無視します。メモリの解放を忘れないでください。 */
if(*str == '\0') {
free(str);
continue;
}
/* quit が入力されたらループを抜けます。文字列比較には strcmp を使用します。 */
if(strcmp(str, "quit") == 0) {
free(str);
break;
}
/* 入力された文字列を履歴へ登録します。 */
add_history(str);
/* 入力された文字列をそのまま出力します。 */
printf("output: %s\n", str);
free(str);
}
printf('-- History List --\n');
/* 履歴リストを取得します。 */
historyList = history_list();
/* 履歴を1行ずつ参照します。 */
while(historyList[i] != NULL) {
/* 履歴を1行取得します。 */
HIST_ENTRY *history = historyList[i];
/* 履歴に含まれる文字列を出力します。 */
printf("%s\n", history->line);
/* インデックスを次に進めます。 */
i++;
}
/* 履歴リストをファイルに書き出します。 */
write_history("history.txt");
/* プログラムを終了します。 */
return EXIT_SUCCESS;
}
1. quit が入力されるまで、入力された文字列をそのまま出力する。
2. quit が入力されたら、それまでに入力された履歴リストを出力する。
3. 履歴リストをファイルに出力する。
コンパイル
gcc -o HelloReadline -Wall -lreadline -lcurses HelloReadline.c
リンカオプションが必要です。
電車の中で少しずつ読んでいたけど、ようやく読み終わりました。長い長い。
絵が全然出てこないのと、外見の特徴の部分をしっかり覚えずに読み進めたため、勝手なイメージで読んでいました。後から絵を確認したけど(話の最初に1枚だけ絵がある)、だいたいはイメージぴったしの姿です。
でも、霧栖のイメージだけずれてました・・・。白い髪のお兄ちゃんなイメージで読んでました。
今まで公開されている絵は以下のキャラ。
1巻
* 表紙 : 迦遼海江
* 1.JtheE. : 石杖所在
* 2.HandS.(R) : 戸馬的
* 2.HandS.(L) : 久織巻菜
* 3.formal hunt. : 石杖火鉈
2巻
* 表紙 : 日守秋星
* 1.S.vs.S-1 : 鋳車和観
* 2.S.vs.S-2 : 霧栖弥一郎
* 3./FOMALHAUT. : 日守秋星
* 4./Vt. in day dream. : 石杖火鉈(17歳)
アリカ、戸馬さん、秋星、カナタはイメージどおり。1巻の表紙がカイエと気づいたのは後のお話。
ツラヌイのイメージは黒髪ショートカットで元気ある女の子(確かな設定は大学生でお嬢様)のイメージなんですが、3巻で絵が出てきたりしたら全然違うかも。
2巻最後の数ページで、カナタにあっさりD棟患者全滅させられているけど、出番の無かった人たちかわいそす。
3巻はどんな話になるんでしょうね。
成恵の世界のはっきりした1話の起承転結っぷりが好きです。
機族が表情を持って動いている何気ない1コマ1コマを見るだけで、いちいち感動してしまったり、今一番好きな作品まで登り詰めてます。
特にコンテキストアウェアネスの点を気にすると、いろいろと想像が広がって仕方ありません。
生きている間にこの世界を見てみたいと、本気で思っているわけですが、間に合うのでしょうか。
そんな自分の興味は、宇宙や制御、通信系に向いています。
結局のところ、自分が研究する際の一つのゴールが機族と星船だと思ってますが、果たして。
日曜日
10:00 テレビ東京 絶対可憐チルドレン
25:30 テレビ東京 隠の王
月曜日
23:00 TVK S・A ~スペシャル・エー~
25:15 TVK 我が家のお稲荷さま。
26:00 テレビ東京 モノクローム・ファクター
木曜日
25:25 TBS xxxHOLiC◆継
26:15 TVK 紅
金曜日
25:15 TVK ドルアーガの塔 ~the Aegis of URUK~
土曜日
26:30 TVK 仮面のメイドガイ
今期のアニメを調べてみると、乙女のための作品が満載ですね。
D.C. や To LOVEるはもう最初からみていないんですが、どうでしたか。
そして、アリソンが BS 放送なのが残念。
モノクロがアニメ化したのにはびっくり。
とりあえず、今期の録画予定としては、HOLiC とメイドガイの2つ。ドルアーガも録画するかも。
今期はちょっと楽できそうです。なにか忘れているものがあったら言ってくださいな。





