【Arch Linux】Trac1.4が起動しなくなっていた
Arch Linuxの更新を行ったためか、Tracが動かなくなった。
import hashlibで、エラーがでている様子。 Pythonの仮想環境にて、
python2.7 -v -c "import hashlib"
としてみると、 /usr/lib/python2.7/lib-dynload/_hashlib.so の読み込み付近で、エラーが起きていることがわかった。
ldd /usr/lib/python2.7/lib-dynload/_hashlib.so
として依存関係をみると、 libcrypto.so.1.1 のライブラリが見つけられていなかった。 findすると、確かにない。
debiann11に、libcrypto.so.1.1があったので、Arch linuxの/usr/lib/にコピーして、
ldconfig
を実行した。
その後、
ldd /usr/lib/python2.7/lib-dynload/_hashlib.so
としてみると、今度は、ライブラリを見つけたようだ。
Tracを起動すると、今度は、無事起動した。良かった。
【Linux】cronでsftp転送に失敗していた原因
毎日取得していたバックアップが、 取れていないことに気がついた。 いつからかは、よくわからない。
バックアップするファイルの生成は、 できていて、sftp転送が失敗しているのがわかった。
バックアップ処理を、shellから手動で実行すると、 sftp転送に成功したが、cronからの実行では失敗する。
ログを出すようにすると、 Permission denied (publickey). とでている。
環境変数や、権限を疑ったが、そうではないようだ。 お手上げなのでsftpに-vを着けて詳細を出力させる。
手動実行とcronからの実行時のログを比較した。
どうやら手動の時は、ssh-agentが認証しているようだ。 確かに、パスフレーズ付きのカギを指定していた。 なんてこった。
バックアップ用にパスフレーズの無い秘密鍵用意して 設置したら、バックアップがとれる用になった。
前に秘密鍵を交換するときに、間違えたのが原因。 ファイル名が同じだったので、パスフレーズ付きの ものに変えてしまったのだ。
これを機にバックアップ用の秘密鍵は、 ファイル名を変えるようにした。
【Arch Linux】Nginxがwarningを吐いているのに、気が付く。
nginxの設定を変更して、確認ために、 nginx -t としたとき、ワーニングが出ていることに気がついた。
could not build optimal types_hash, you should increase either types_hash_max_size: 1024 or types_hash_bucket_size: 64;
メッセージしたがって、以下のように、サイズの指定をした。
http { : types_hash_max_size 2048; types_hash_bucket_size 128; : }
しかし、ワーニングメッセージは、消えなかった。
なんてこったい? そもそも、types_hashとは、なんだ?
ちょっと前に、mime.typesの更新があって、サイズがすごく大きくなったことを思い出した。 これが原因かもしれないと思って、取っておいた元のmime.typesに戻したところ、 ワーニングがでなくなった。
types_hashは、mime_typesのハッシュのなのかも知れない。
しかし、こんな直しかたで良かったのだろうか? 今後、mime.typesが、また小さくなるまで、更新できないじゃないか。
【Arch Linux】ジェルからJavaScriptをminifyしたい
シェルスクリプトの中でしたいので、コマンドラインからシンプル呼べるものが欲しかった。
ES2015に対応しててほしい。
圧縮率も気にしない。
node, npmのインストールは、避けられなさそうなのでよいとして、 モジュールをグローバルインストールしたくない。
調べてみると、minifiyツールは、terserを使うのがよさげ、 npxコマンドを利用すると、ローカルインストールのパッケージをコマンドラインから呼べそう。
- インストール
npm install terser
- minifi
npx terser -c -m -o build/js/something.min.js build/js/something.js
よし、きた。 求めよ、されば与えられん。 先人たちに、感謝。
参考
2019年のJavaScript minifier "terser" - Qiita
npm でローカルインストールしたパッケージを CLI でコマンド実行する方法(npm-srcipts, npx) - Qiita
【Arch Linux】winscpが繋がらなくなった
winscpから接続しようとしたら、つながらなくなった。 puttyでは、接続できるので、意味がよくわからない。
sshdのlogを調べてみると、
userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
という記録がある。
ssh-rsaでは、つながせないようになったようだ。 設定で、ssh-rsaを許可するようにもできるのだろうが、 こういう時には、公開鍵の交換してしまうほうがよかろう。
EdDSAを使って公開鍵を作り直した。 puttyでは、つなげるので、鍵交換は可能だ。
新しい公開鍵を使用するようにすると、winscpでも、つながるようになった。 やれやれ。
【Debian】emacs27.2をインストール
emacsが古い
Debian10で、提供されているemacsのバージョンが、26.1と古い。
おかげでmelpaに接続できず、パッケージ類のインストールができなかった。
emacsは、カスタマイズして使うのが前提なので、致命的である。
仕方がないので、頑張る
aptで入れたemacsは、アンインストールした。
最新のemacsをインストールすることにする。
Debianは、詳しくないが、emacsのビルドインストールは、
別のLinuxでやったことがある。
ビルド環境と、依存するパッケージを入れれば、なんとかなるだろう。
ビルド環境
- gcc
- make
依存パッケージ
- libncurses-dev
- autoconf
- libneon27-gnutls-dev
ビルド手順
cd /usr/local/src
tar zxvfp emacs-27.2.tar.gz
cd emacs-27.2
bash autogen.sh
./configure -without-x -without-selinux
make
make install
最新のemacs
- ビルド、インストールができるようになった。
- これで、当分emacsに困らない。