くんすとの備忘録

プログラミングや環境設定の覚え書き。

GNU Coreutilsをdockerでビルドする

昨日、GNU Coreutilsをビルドする手順を紹介しましたが、環境を汚したくないのでdocker化しました。

github.com

使い方

リポジトリのチェックアウト

$ git clone --recursive https://github.com/kunst1080/docker-build-coreutils
$ cd docker-build-coreutils
$ ./cleanup-submodule.sh

./cleanup-submodule.sh は絶対パスで指定されているサブモジュールのパスを相対パスに再設定するためのスクリプトです。これをやらないと、dockerコンテナ内でビルドできません。

dockerコンテナのビルド

$ ./docker-build.sh

./bootstrap, ./configure, make の実行

$ ./bootstrap.sh
$ ./configure.sh
$ ./make.sh

リポジトリの coreutils/src ディレクトリの中にビルド後のバイナリが出来上がって〼

GNU Coreutilsを自分でビルドする

lsrm など、GNU Coreutilsのコマンドを改造したいと思ったことはありませんか? そういうときは、自分でGNU Coreutilsをビルとする必要があります。やってみましょう。

GNU CoreutilsのソースはGitHubにミラーが上がっているので、それをcloneしてビルドするだけです。

github.com

検証環境

  • Ubuntu 16.04 LTS

手順

必要なコマンド・ライブラリのインストール

ビルドの際、 ./bootstrap./configure を実行したときに必要なコマンド・ライブラリがあるかどうかチェックされます。 セットアップ直後の状態で試してみると、以下のコマンド・ライブラリが足りないとメッセージが表示されました。

  • ./bootstrap

    • autoconf
    • automake
    • autopoint
    • bison
    • gettext
    • git
    • gperf
    • makeinfo ← パッケージはtexinfo
    • patch
    • rsync
    • xz ← パッケージはxz-utils
  • ./configure

    • gcc
    • g++
  • make に必要

    • make

全て合わせて、以下のようなコマンドでインストールしておきます。

$ apt install --no-install-recommends \
    autoconf \
    automake \
    autopoint \
    bison \
    gettext \
    git \
    gperf \
    texinfo \
    patch \
    rsync \
    xz-utils \
    gcc \
    g++ \
    make
  • --no-install-recommends オプションはお好みで。
  • ※こんなに神経質にやらなくても、半分くらいは apt install build-essential で入る。

リポジトリの取得

GitHubからcloneします。サブモジュール付きなので注意。

$ git clone --recursive https://github.com/coreutils/coreutils.git

ビルド設定

makeの準備をします。

cloneしたディレクトリに移動して

$ cd coreutils

bootstrap を叩き

$ ./bootstrap

./configure します。

$ ./configure

make

全体をビルドする場合

$ make

これで全てのソースがコンパイルされ、 src ディレクトリに実行可能ファイルが作成されます。

特定のコマンドだけビルドする場合

……はできないよう1で、一度上記の手順で make する必要があります。

rm コマンドだけを再度ビルドしたい場合は以下のようにします。

$ make src/rm

必要なソースだけがコンパイルされ、 src ディレクトリに実行可能ファイルが作成されます。

セルフネグレクト寸前の中年男性が自炊・中食・外食のリアルなコストを比較してみた

限界オタクのみなさまこんにちは。

「自炊と中食と外食と、実際それぞれいくらくらいかかるの?」と日頃疑問に思うことは多いと思います。 ネットで検索してみても、外食のパターンでは朝食まで外食になっていたり、外食費が1500円とかになっていて「いやいや流石にそれはねぇよ…」ってなることが多いのではないでしょうか?

自分は普段から自炊・中食・外食をそれぞれやっているので、ここではその際の数字をもとに各パターンごとの食費を計算し、よりリアルな自炊・中食・外食での食費を示したいと思います。

※記事の最後に表がありますので、結果だけ見たいという方は最後までスクロールしちゃってください。

前提

  • 筆者は一人暮らしの中年男性
  • 近所に業務用スーパーはなく、ライフで買い物をしています
  • 少食
  • 酒と煙草はやりません

朝食・昼食・夕食のパターンと食費

朝食

朝食は基本的に、食パンにチーズを載せて食べます。

食パン

  • 食パン 1枚: 18円 (6枚切り 108円)
  • チーズ 1枚: 26円 (6枚入り 156円)
  • 牛乳 200ml: 33円 (900ml 150円)

→ 合計: 77円

昼食

昼食は、外食(コンビニ含む)のパターンと、お弁当を作ってくるパターンがあります。

外食(コンビニ含む)

お店や買うものによって変動しますが、よく食べるものを代表としてざっくり計算します。

  • なか卯で食べる場合
    • 牛丼ミニ+サラダ・味噌汁セット: 510円
    • うどんミニ+サラダ・豚汁セット: 470円
  • コンビニで買う場合
    • パスタサラダと肉まん: 500円

→ だいたい: 500円

お弁当

  • ご飯1食分: 43円 (3kg 1 = 20合 = 46食 2000円)
  • 冷凍食品 肉系 * 4: 107円 (6個入り 160円)
  • 冷凍食品 野菜 * 2: 53円 (6個入り 160円)

→ 合計: 203円

夕食

夕食は、自炊・中食・外食のパターンがあります。

自炊

調理方法は無視して材料費を出します

  • ご飯1食分: 43円 (昼食と同じ)
  • 肉: 128円 (100g 160円のものを80g)
  • 野菜: 67円 (200円分くらい買って3回に分けて使う)
  • 小物: 33円 (納豆/しらす/豆腐/etc)

→ 合計: 271円

中食

お惣菜を2品くらい買って帰ります

  • ご飯1食分: 43円 (昼食と同じ)
  • メイン惣菜: 216円 (肉とか)
  • サブ惣菜: 108円 (野菜とか)

→ 合計: 367円

外食

お昼の外食と同じなので省略

集計

各パターンの食費が出揃いましたので、表にまとめます。

朝パターン 昼パターン 夜パターン 朝食 昼食 夕食 1日 1ヶ月
食パン 外食 外食 77 500 500 1,077 33,387
中食 77 500 367 944 29,264
自炊 77 500 271 848 26,288
弁当 外食 77 203 500 780 24,180
中食 77 203 367 647 20,057
自炊 77 203 271 551 17,081

だいたいこんな感じになりました。 実際はこの他にコーヒーやおやつをかったり、自炊する場合は調味料を買い足したりしてもうちょい増えると思いますが。

生活見直しのご参考になればと。


  1. お米は5kgや10kgで買う方が安いが、使いきらないと虫が湧く。自炊のモチベーションが上下しやすいオッサンは3kgが妥当。

【雑メモ】CoreOSのDockerコンテナからstartx(成功したとは言いがたい)

環境

  • 本体: TOSHIBA dynabook R730 (PR730BAAN3BA51)
  • OS: CoreOS Stable
$ uname -a
Linux 48a93ce4bbe9 4.14.11-coreos #1 SMP Fri Jan 5 11:00:14 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

メモ

最近、Dockerコンテナから startx して直接ホストのディスプレイを叩くというやつをやってます。

これを使うと、X Window SystemをまるごとDockerコンテナに閉じ込めつつネイティブと同じ(だと思う)パフォーマンスでGUI環境を使うことができます。

※この記事も、その環境上で書いてます。

Ubuntu Server 17.04ではうまくいったのでCoreOSに移行してきたのですが……
どうやらディスプレイをうまく認識してくれないようです。
(デュアルディスプレイにしているが、片方でしか表示できなくなってしまった…)

xrandrの結果はこんな感じ。
Ubuntuのときは LVDS1(内蔵モニタ) と HDMI1(外付けモニタ) が認識されていたのに、CoreOSにすると Screen 0 だけになってしまってエラーも出ている。

$ xrandr        
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640 x 480, current 1600 x 1200, maximum 1600 x 1200
default connected 1600x1200+0+0 0mm x 0mm
   1600x1200      0.00* 
   1280x1024      0.00  
   1024x768       0.00  
   800x600        0.00  
   640x480        0.00 

startxのログに怪しいログが出ていて、intelグラフィックドライバがカーネルに組み込まれてない関係の問題の予感がします。

modprobe: FATAL: Module i915 not found in directory /lib/modules/4.14.11-coreos
modprobe: FATAL: Module fbcon not found in directory /lib/modules/4.14.11-coreos
intel: waited 2020 ms for i915.ko driver to load
modprobe: FATAL: Module i915 not found in directory /lib/modules/4.14.11-coreos

とりあえず状況をメモ。

さてさてここからどうするか……

参考になりそう

夕方追記

j4-dmenu-desktopのフォントを変更する方法

j4-dmenu-desktopの--dmenuオプションで、dmenuの起動オプションを指定できるらしい。

github.com

たとえば、

  • フォント名: MigMix 1P
  • フォントサイズ: 12

の場合は以下のように指定するとうまくいった。

j4-dmenu-desktop --dmenu="dmenu -fn 'MigMix 1P-12'"

Linuxでsetxkbmapが効かない(ように見えた)件

.xinitrcsetxkbmap -layout jp って書いても全然効かないということがあったんですが…

f:id:kunst1080:20180102140856p:plain

犯人はfcitxちゃんでした。

無情。

「忘年会議2017」でLTしてきました。

一つ前の記事の続きです。

www.kunst1080.net

懇親会(忘年会議)

「合同勉強会 in 大都会岡山 -2017 Winter-」の懇親会として 忘年会議2017 - connpass というイベントがあり、そちらでもLTをさせていただきました。

発表内容

『2017年のふりかえり』と称してAqoursの2017年を振り返りました。

www.slideshare.net

※公開のため一部スライドを差し替えています

まとめ

????「なんやかんや言って、ラブライブ!の話したいだけでしょ?」

ぼく「そうだよ!!!!」

広告