ブログ

Atmark Distにnano(エディタ)を追加してみた

at_ito
2015年2月18日 15時10分

Armadilloの標準イメージには、viエディタが入っています。しかしviエディタは操作方法が特殊であり使いにくいという人もいます。 そのため、Debian GNU/Linuxでも標準のエディタになっているnanoをAtmark Distに追加してみました。

以下、nanoをAtmark Distに追加した際の手順を紹介します。ディレクトリ等の環境によって異なる部分については、使用環境に読み替えてください。

1. nanoのソースコードを取得

ATDE上で、apt-get sourceコマンドを実行し、nanoのソースコードを取得します。

[atde ~]$ mkdir nano
[atde ~]$ cd nano
[atde ~/nano]$ apt-get source nano
[atde ~/nano]$ ls
nano-2.2.6                  nano_2.2.6-1.dsc
nano_2.2.6-1.debian.tar.gz  nano_2.2.6.orig.tar.gz

2. nanoをAtmark Distに配置

Atmark Distに含まれるアプリケーションは、atmark-dist/userディレクトリに配置されています。 そのため、以下のコマンドを実行し、nanoのソースコードをatmark-dist/user/nanoディレクトリに配置します。

[atde ~/nano]$ cd
[atde ~]$ cd atmark-dist/user
[atde ~/atmark-dist/user]$ mkdir nano
[atde ~/atmark-dist/user]$ cd nano
[atde ~/atmark-dist/user/nano]$ tar zxf ~/nano/nano_2.2.6.orig.tar.gz
[atde ~/atmark-dist/user/nano]$ ls
nano-2.2.6

3. Atmark Distのユーザーランドコンフィギュレーションにnanoの項目を追加

nanoをユーザーランドコンフィギュレーションで選択できるようにするために、 以下のようにconfig/config.inファイルを編集します。

comment 'Editors'
bool 'nano'                     CONFIG_USER_NANO_NANO      ←この行を追加
bool 'vi (leevee)'              CONFIG_USER_LEVEE_VI
bool 'vi (elvis-tiny)'          CONFIG_USER_ELVISTINY_V

上記変更で、以下のユーザーランドコンフィギューレションの項目が追加されます。

Userland Configuration
  Miscellaneous Applications  --->
    [*] nano    ← nanoを追加する場合は、この項目を有効化

前述の手順で、CONFIG_USER_NANO_NANOが追加されたため、 nanoを有効にされた場合、nanoをビルドするために、atmark-dist/user/Makefileを 以下のように修正します。

dir_$(CONFIG_USER_MP3PLAY_MP3PLAY)          += mp3play
dir_$(CONFIG_USER_MSNTP_MSNTP)              += msntp
dir_$(CONFIG_USER_MUSICBOX_MUSICBOX)        += musicbox
dir_$(CONFIG_USER_NANO_NANO)                += nano      ← この行を追加
dir_$(CONFIG_USER_NESSUS_NASL)              += nessus
dir_$(CONFIG_USER_NETCAT_NETCAT)                        += netcat
dir_$(CONFIG_USER_NETFLASH_NETFLASH)        += netflash

上記変更により、nanoを有効化した場合は、atmark-dist/user/nano/Makefileの内容を元に nanoがビルドされるようになります。

4. nanoをビルドするための修正を行う

この状態では、nanoをビルドするためのMakefileができていないため、nanoをビルドすることができません。

そのため、atmark-dist/user/nano/Makefileを以下の内容で作成します。

SRC_DIR = nano-2.2.6
 
CONF_BUILD = $(shell $(SRC_DIR)/config.guess)
CONF_HOST = $(shell $(SRC_DIR)/config.sub $(CROSS:-=))
 
BUILD_DIR = builddir
 
CONFIGURE_OPT = --build=$(CONF_BUILD) \
        --host=$(CONF_HOST)   \
        --prefix=/usr         \
        --enable-tiny         \
        --disable-nls
 
all: build
 
$(BUILD_DIR)/Makefile:
    mkdir -p $(BUILD_DIR)
    (cd $(BUILD_DIR); ../$(SRC_DIR)/configure $(CONFIGURE_OPT))
 
build: $(BUILD_DIR)/Makefile
    make -C $(BUILD_DIR)
 
romfs: build
    $(ROMFSINST) $(BUILD_DIR)/src/nano /usr/bin/
 
clean:
    make -C $(BUILD_DIR) clean
 
distclean: clean
    rm -rf $(BUILD_DIR)
  • ※1: CONFIGURE_OPTは、ビルドされるファイルが最小限になるよう設定
  • ※2: このMakefileはatmark-dist/user/curl/Makefileを参考に作成(ほぼ同じ構成のため)

参考

このブログで紹介した手順を実行したパッチを添付します。(ファイル名: atmark-dist-20150127-add-nano.patch)