ひつまぶし食べたい

メモ代わりのブログ

DebianでLuaJITTeXを使いたい

そろそろLuaTex使ってみたいなと思ったところ、LuaJITTeXの方が早い場合があるということで、試してみようと思った。

参考

未解決の問題

  • /var/lib/texmf/fmtutil.cnf-TEXLIVEDIST が自動生成されている、とコメントされているが、元ファイルがわからない
### This file was automatically generated by update-fmtutil.
#
# Any local change will be overwritten. Please see the documentation
# of updmap on how to override things from here.
#
###

準備

パッケージインストール


Debian でログインシェルをzshにしている人が snappy を使う場合の注意

Snappy について

Canonical が主導しているパッケージシステムで、Universal Linux Package と銘打つように、ポータブルなパッケージングができそうな感じ。 ポータビリティを上げるために、dockerみたいな感じで、依存ライブラリも全部パッケージに含めてしまうスタイルなので、多少debパッケージよりは大きくなる。 その分、sidを使っているとよく起きる、共通ライブラリの依存バージョンの不整合がおきる、という問題は起きない。


Ansible でバージョンチェックする

やりたいこと

サーバー管理には ansible を使っていますが、apt で入れているパッケージに対して、以下をやりたい状況がありました。

  • インストールされていなかったらインストール
  • あるバージョン未満だったらアップデート

pipやgemといった言語のパッケージマネージャと違って、apt ではバージョンの制約を書くことが面倒です。 いい感じに playbook の中でバージョン比較をして、インストール/アップデートすべきかを判定したいと考えました。


GnuPGのメモ @ Debian Sid

Debain での GnuPG

GnuPG は OpenPGPの実装の一つで、GPGと呼ばれることもあります。 Debian では、2016/07/12現在、gpg コマンドは 1.4系で、 gpg2 パッケージで 2.1系を提供しています。 普段使いでgpg 1.4系をわざわざ使う必要はないとは思うので、以下ではgpg2 を利用することにしています。 以下では、gpg と gpg2 の違いに触れることはありませんが、例えば、RSAではなく楕円暗号を使おうと思ったら、gpg2 を使うしかありません。


もともとgitで管理されているアプリケーションをdebパッケージにしたいというメモ

はじめに

debパッケージを作る経験が少ないので、あまり良い方法ではないかもしれない。

サンプル

https://github.com/hitsumabushi/hub

手順

# install
sudo apt install fakeroot

# tag, release をきれいにする
git tag -l > tag_list
for x in $(cat tag_list); do git push origin :$x ; done

# 色々リポジトリを整理した後、空っぽの masterを作る
git checkout --orphan master

# 自前で control, copyright ファイルを書く
# アップストリームのものを持ってくる
# 参考: https://github.com/bcandrea/consul-deb/tree/debian/debian
fakeroot dpkg-deb --build pkg tmp

# 生成された deb ファイルの中身を確認し、install してみる
ar x <deb file>
# ... check files
sudo dpkg -i <deb file>
# ... check installation
# dpkg -s <package>
# dpkg -L <package>

# 問題がなければ
git commit -a
git push origin master

s3で自前 Debian Package リポジトリを作る

この記事でやること

  • aptly の初歩的な使い方
  • aptly を使ってs3へ自前リポジトリを公開する。

自前パッケージの作成については、書かないです。

自前 Debian Package リポジトリ

なぜ自前のリポジトリが欲しいかというと、個人的には以下の3つくらいかと思います。


Dockerの細々としたメモ

Debian で利用する際のメモを書いておく。

grub でのカーネルパラメータ

  1. systemd を利用する設定
  2. cgroups で、メモリに制限をかけるための設定
# quiet はあってもなくても良い
GRUB_CMDLINE_LINUX_DEFAULT="quiet init=/bin/systemd"
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

cgroups まわり

cgroups のディレクトリ配下に設定がある


runCをDebianで実行する

opencontainers/runc を実行してみようとしたところ、コンパイルまではすぐできるのに、実行するとエラーが出て困ったので、対処方法を書いておく。

runCのインストール

golang的に普通の場所に置いてビルドすると良い。git clone の代わりに go getでも良い。


Xmonadの設定

資料

  1. http://xmonad.org/documentation.html
  2. Archlinux Wiki - Xmonad
  3. Xmonad/Config archive/John Goerzen’s Configuration
  4. Xmonadの設定 1/3 「基本」編 - ナレッジエース

環境

Debian Sid & Xfce4

Install and Initial Configure

Package install

# basic packages
sudo apt-get install xmonad libghc-xmonad-dev libghc-xmonad-contrib-dev
# for adding launcher
sudo apt-get install dmenu
# for status bar
sudo apt-get install xmobar
# tools
sudo apt-get install suckless-tools scrot tilda trayer

Xsession

  1. add /usr/share/xsessions/custom.desktop


Dockerのプロキシ設定

自宅ではプロキシを立てていないので問題なかったが、会社でDockerをいじろうとするとプロキシに阻まれてうまくいかず困っていた。 bashの環境変数を設定するのはうまくいかなくて、しばらく手元ではdockerをやらず、作業用マシンをクラウドに立ててどうにかごまかしていたのだけど、 あらためて考えると解決できた。