GNU Coreutilsを自分でビルドする
ls
や rm
など、GNU Coreutilsのコマンドを改造したいと思ったことはありませんか?
そういうときは、自分でGNU Coreutilsをビルとする必要があります。やってみましょう。
GNU CoreutilsのソースはGitHubにミラーが上がっているので、それをcloneしてビルドするだけです。
検証環境
- 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 |
だいたいこんな感じになりました。 実際はこの他にコーヒーやおやつをかったり、自炊する場合は調味料を買い足したりしてもうちょい増えると思いますが。
生活見直しのご参考になればと。
-
お米は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
して直接ホストのディスプレイを叩くというやつをやってます。
- GitHub - kunst1080/docker-x11-base: Running X Window System over a Docker.
- GitHub - kunst1080/docker-x11-wm: Running X Window System over a Docker.
- GitHub - kunst1080/docker-desktop: My GUI environment on Docker.
これを使うと、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
とりあえず状況をメモ。
さてさてここからどうするか……
参考になりそう
夕方追記
……めんどいのでubuntu serverにしよ
— くんすと (@kunst1080) 2018年1月8日
j4-dmenu-desktopのフォントを変更する方法
j4-dmenu-desktopの--dmenu
オプションで、dmenuの起動オプションを指定できるらしい。
たとえば、
- フォント名: MigMix 1P
- フォントサイズ: 12
の場合は以下のように指定するとうまくいった。
j4-dmenu-desktop --dmenu="dmenu -fn 'MigMix 1P-12'"
Linuxでsetxkbmapが効かない(ように見えた)件
.xinitrc
に setxkbmap -layout jp
って書いても全然効かないということがあったんですが…
犯人はfcitxちゃんでした。
fcitxううううううううううううお前かぁああああああああああああ!!!!!! キーレイアウト関係ないやんけぇえええええええええええ!!!!!!
— くんすと (@kunst1080) 2018年1月2日
無情。
「忘年会議2017」でLTしてきました。
一つ前の記事の続きです。
懇親会(忘年会議)
「合同勉強会 in 大都会岡山 -2017 Winter-」の懇親会として 忘年会議2017 - connpass というイベントがあり、そちらでもLTをさせていただきました。
ある意味本日の本編 #忘年会議
— くんすと (@kunst1080) 2017年12月23日
発表内容
『2017年のふりかえり』と称してAqoursの2017年を振り返りました。
www.slideshare.net
※公開のため一部スライドを差し替えています
まとめ
今回もラブライブ!のLTやれたっ #忘年会議
— くんすと (@kunst1080) 2017年12月23日
????「なんやかんや言って、ラブライブ!の話したいだけでしょ?」
ぼく「そうだよ!!!!」
「合同勉強会 in 大都会岡山 -2017 Winter-」でシェル芸勉強会をしてきました。
2017/12/23(土)に岡山で行われた「合同勉強会 in 大都会岡山 -2017 Winter-」にて、県外ゲスト枠としてシェル芸のセッション(20分)をしてきました。
www.slideshare.net
セッションの様子
今回は岡山の合同勉強会ということもあり、シェル芸人らしき人がまったくいない中のセッションとなりました。
大都会にもある #シェル芸 勉強会#gbdaitokai pic.twitter.com/zOomuYuE73
— 法林浩之 (@hourin) 2017年12月23日
冒頭でアンケートを取ったのですが、参加者約80名のうち「シェル芸」という単語を知っている人がそもそも1/3程度という状況…… が! 解けてる方も数名いらっしゃって、岡山のパワーを感じました。
出題中はみなさん非常に集中されてる様子で、真剣さが伝わってきてました。
静まり返った空間で打鍵音だけが響いている #gbdaitokai
— ほぼろ (@rhoboro) 2017年12月23日
開始前は無茶苦茶緊張していたのですが、無事に盛り上がっていただけて安心しました。ありがとうございました!
問題と解答例
スライドにも書いてありますが、ブログの方にも書き写しておきます。よろしければ練習にお使い下さい。
問1: シェル上で計算
問題
次の数字の列を、足し算してください。
$ echo 2 5 9 8 1 3 7 4 2 5 9 8 1 3 7 4
解答例
$ echo 2 5 9 8 1 3 7 4 | tr ' ' '+' | bc
$ echo 2 5 9 8 1 3 7 4 | awk '{for(i=1;i<=NF;i++){a+=$i}}END{print a}'
$ echo 2 5 9 8 1 3 7 4 | tr ' ' '\n' | awk '{a+=$1}END{print a}'
問2: 文字列の変換
問題
「pen-pineapple-apple-pen」を「PenPineappleApplePen」に変換して下さい。
$ echo pen-pineapple-apple-pen pen-pineapple-apple-pen
解答例
$ echo pen-pineapple-apple-pen | sed -r 's/(^|-)(.)/\U\2/g'
$ echo pen-pineapple-apple-pen | tr '-' '\n' | while read L; do echo -n ${L^}; done; echo
問3: 「大都会岡山へようこそ」問題
問題
$ echo 大都会岡山へようこそ
から、以下のような出力を生成してください。
大都会岡山へようこそ 都会岡山へようこそ大 会岡山へようこそ大都 岡山へようこそ大都会 山へようこそ大都会岡 へようこそ大都会岡山 ようこそ大都会岡山へ うこそ大都会岡山へよ こそ大都会岡山へよう そ大都会岡山へようこ
解答例
$ echo 大都会岡山へようこそ | sed 's/.*/&&&&&&&&&&&/g' | sed -r 's/(.{10})./\1\n/g'
$ echo 大都会岡山へようこそ | sed -r ':a;p;s/(.)(.*)/\2\1/;/^そ/!ba'
$ echo 大都会岡山へようこそ | perl -nle 'print "$_$_\n"x10' | awk '$0=substr($0,NR,10)'
まとめ
- 岡山の方へ
- シェル芸勉強会はフルリモートで参加できますので、ぜひ気軽に参加してみてください。
- 初参加なのにもかかわらず1問でも解けるのは凄いので自慢しまくってください!
- ハンズオン形式や、Twitterを活用して双方向になるような感じは、やはり新鮮さがあるようです。他の勉強会でもそういうのが増えてくると楽しいかもですねっ!
80人以上参加してるから、たぶん #シェル芸 勉強会史上最大規模w #gbdaitokai https://t.co/fY3QgiG8eU
— 法林浩之 (@hourin) 2017年12月23日
えっ!? ちょっ!? まじすか……