No Such Blog or Diary

«Prev || 1 | 2 | 3 |...| 56 | 57 | 58 || Next»

aliases の :include:

エイリアスをメーリングリスト的に使うときに転送先のアドレスを別のファイルに書いて置ける機能.今までカンマ区切りで一行に列挙してたよ……(大きなサイズの ML は Mailman だったし).

ということで,hoge-ml というメーリングリストのメンバーを /etc/mail-aliases/hoge-ml-members に書き並べておいて,/etc/aliases に次を書いて newaliases すればよいと.

hoge-ml:	:include:/etc/mail-aliases/hoge-ml-members

これでファイル内に列挙されたメンバーに送られる.しかもこのメンバーを列挙したファイルの更新時には newaliases はいらないので楽という.

メンバーを列挙したファイルを使うと Mailman と違ってメンバーのメタ情報をコメントとしてかなり自由に書いておけるので,メタ情報を含めてのメンバー管理に便利かもしれない.Mailman でも"名前"として文字列を保存できるけど変なものを書くと事故りそうだし.

だがしかし,やっぱりメールヘッダに連番入れたくなるので Mailman と連携し始めるとかいうオチかな.

MSYS2 の MinGW64 コンソールをタスクバーにピン留め

起動してるのをピン留めしても何か設定が変なので,mintty が環境設定しつつ bash を呼ぶようなショートカットを作ってそれをピン留めすることにした.設定すべき環境変数は MSYSTEM で,これを MINGW64 にすると MinGW 64bit な状態になってくれる.なので次のコマンドへのショートカットを作ればいい.

C:\msys64\usr\bin\mintty.exe /bin/env MSYSTEM="MINGW64" /bin/bash -l -i

閑話休題.

スタートメニューから呼ばれるコマンド msys2_shell.cmd を眺めて,バッチファイルで頑張ってるなぁとか思った.自分がバッチファイルを最後に書いたのは何年前くらいなんだろうか.まったく思い出せん.

Windows 用に emacs を MinGW/MSYS2 でコンパイルする

毎度 Windows 用の emacs のバイナリをどこから手に入れるか悩ましいので,自前でコンパイルしてしまえとやってみた.

とりあえず,IME パッチの README を参考に emacs 25 をば.

1.MinGW のツールチェインなどを MSYS2 に入れる.画像まわりのライブラリとか必要そうなのをテキトウに投入.

pacman -S base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-xpm-nox mingw-w64-x86_64-libtiff mingw-w64-x86_64-giflib mingw-w64-x86_64-libpng mingw-w64-x86_64-libjpeg-turbo mingw-w64-x86_64-librsvg mingw-w64-x86_64-libxml2 mingw-w64-x86_64-gnutls

2.MSYS2 の MinGW 64bit のシェルを起動する.環境変数を適切に設定すりゃいいのかもしれないけれど面倒なのでスタートメニューから起動するのが楽.

3.git clone で emacs 25 のソース取ってくる.とりあえず /d/etc/emacs-build/ で作業するとして.git の古い履歴はいらんので浅く clone.

cd /d/etc/emacs-build/
git clone --depth=1 -b emacs-25 git://git.savannah.gnu.org/emacs.git

4.IMEパッチをゲットして適用する.

cd emacs
wget https://gist.githubusercontent.com/rzl24ozi/8c20b904c9f5e588ba99/raw/0d5694e22a70cb3ea639f27013e4134c9772f1ed/emacs-25.1-w32-ime.diff
patch -p 0 < emacs-25.1-w32-ime.diff

5.コンパイルする.折角なので -Ofast -march=native で速いバイナリを.インストール先を /d/etc/emacs-built/ とかにしてみる.

./autogen.sh
CFLAGS='-Ofast -march=native' ./configure --prefix=/d/etc/emacs-built --without-imagemagick
make -j4
make install

以上の流れで普通に動くものができた.思いのほか楽.めでたしめでたし.

追記:libwinpthread-1.dll が無いって怒られたら C:\msys64\mingw64\bin のあたりから持ってくる?

LDAP でハマった……

OpenDLAP のデフォルト URI が ldapi:///... とかなっていて,自身がサーバのときにはこれで動くのだけど自分以外がサーバのときにはこれでは動かない(ldapi は Unix socket を使うらしい?).i を取って ldap://ldapserver/ と書かないといけない.

これに気づかずハマった.なんで変なのがデフォルト値になっとるんだ……

Let’s Encrypt を使う

SSL 使うためにサーバ証明書が欲しいので,Public Beta になった Let’s Encrypt を使ってみた.

とりあえずGetting Started にあるように,証明を取りたいサーバの上で git を使って手元にスクリプト一式を持ってきて動かす:

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --help

すると必要な物が勝手にインストールされて準備完了(内部で sudo でも使ってるのかね.事前に sudo 使ってたのでよく分からず).

あとは初回の証明取得を指示通りのコマンド1行で証明取得できる.例えば証明を取りたいサーバの FQDN が www.example.com だとしたら -d の後にそれを書いてスクリプト実行:

./letsencrypt-auto certonly --standalone -d www.example.com

なお,外部からこのサーバの https (443) のポートにアクセスできないといけないらしい.最初 80 だけ開けてたけどダメで,80を閉じて 443 を開けたら OK だった(verbose オプションを付けてスクリプトの動きを追ったら https 使ってた).でも 80 を Listen している apache とか居るとコケるので apache とかを停めておく必要がある.ひょっとすると 80 と 443 とどっちを使うのかは環境依存だったりするのかもしれない.

そして証明の期限が90日と短いので,cron を使って毎月自動更新とかしておくと安全な気がする.更新は letsencrypt renew でできるけれど期限の残りに関係なく強制的に更新するには --force-renewal を付ける.更新したら SSL を使う連中を起動し直す必要があるので,面倒だからサーバごと再起動する設定:

15 4 1 * * /path/to/letsencrypt/letsencrypt-auto renew --force-renew && reboot

TeX で縦書きだけど英字を回転したくない時に:\rensuji

縦書きだと半角英数字や数式で書いた部分が 90度回転してくれるのだけど,たった一文字しかない場合とかには回転してほしくない.単純なアルファベット一文字程度なら全角文字でも良いかもしれないけれど,変数なのでフォントをちゃんと数式用にしておきたい……

とかいう需要があったので調べてみたら,\rensuji とかいう便利なコマンドがあるのを発見."$n$女王問題" とか書くと n だけ回転してしまうけれど,\rensuji{$n$} 女王問題" としてあげると n も回転せず他の文字と同じ方向を向いてくれる.

だがしかし,連数字ってのは数字以外の場合にも言う言葉なのだろうか?

«Prev || 1 | 2 | 3 |...| 56 | 57 | 58 || Next»
Search
Feeds

Page Top