AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

scan_bucket.py で UnicodeEncodeError が出た時に

bucket-antivirus-function 導入しててめっちゃ苦労したので、後ほど現状の AWS にインストールする方法を書く。

UnicodeEncodeError: 'ascii' codec can't encode characters in position 38-46: ordinal not in range(128)

characters in 以降は環境によって変わります。

python文字コードの扱い複雑すぎひん?! という気持ちに。 チョッと調べてやれば大丈夫やろ、と思ったら解消しなかったので、以下のようにして標準出力を抑制して回避しました。

github.com

# 66 行目

-    print("Scanning: {}/{}".format(s3_bucket_name, key_name))
+    print("Scanning")

ファイルとかにリダイレクトするか内部で出力するようにすれば解決すんのかな、と思ったけどとりあえず動作優先だったので手動で修正。 これに限らず、放置されているようでここ数ヶ月で発生した問題が fork 先でしか取り込まれてないので、ワイも改造に乗り出すか、という気持ちにさせられた。

WSL2 で利用している Ubuntu 18.04 LTS を 20..04 LTS にアップグレードする

Windows の開発環境しばらくメンテナンスしてなかったな、ということで Ubuntu をアップグレードし……どうやってやるんだ? という感じだったので。

WSL1 を使っている場合は注意が必要らしい

へぇー! という感じ、これ解決したっぽいけど、どうなのかな。 VirtualBox に用意してある Windows 検証環境が WSL1 で Ubuntu 動かしているのであとで調べておきたいお気持ち。

qiita.com

18.04 LTS を 20.04 LTS へ

アップグレードに利用する do-release-upgrade コマンド、 WindowsStore からインストールしていれば標準で入っているのありがたいですね。

sudo apt update
sudo apt upgrade
sudo do-release-upgrade -y

do-release-upgrade 中の選択肢について

基本全部 y でオッケーです。 標準出力にちょいちょい no such file or directory とか出てくるかもしれませんが、僕は問題なかったので大丈夫でしょう! ダメだったらわからん!

sshd_config どうする? というダイアログも出てくると思うのですが、「既存のファイルで置き換える」が標準選択されているはずなので、そのまま enter してくだち。 あとは流れで。

WSL2 の Linux 再起動

reboot 投げれないじゃん! と思ってたのですが、以下のようにやるとのことです。

  1. wsl --list でディストリ一覧を確認する
  2. wsl -t ディストリ名 で対象のディストリを停止する
  3. 即座に再起動するのでこれで完了

Ubuntu アップグレード直後に「再起動しろ!」と言われます。 が、何もせずもう一度 Terminal 立ち上げると「再起動して?」と標準出力で再び警告してくれます。 上記のように -t で停止からの自動再起動してやると、出力消えて cat /etc/issue にも 20.04 LTS と刻まれるのでこれでよさそうです。

vagrant で追加した環境から名前解決できないなった

bash 環境の検証用に CentOS7 の環境を新しく用意したら、名前解決できなくて yum コマンドがことごとく死んだ話。

ロケ地

結論を先に

Vagrantfile に以下を記述する。 すでに vb.gui などの記述で config.vm_provider を記述してある場合は、同じブロックに追記で良いです。

config.vm.provider :virtualbox do |vb|
  vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end
続きを読む

URI.encode した日本語ファイルへのアクセスで ActionController::RoutingError が発生する

タイトルがすべてって感じです (しろめ) 。

日本語ファイルにアクセスすると死ぬ

public 以下に配置した /doc/テスト2017.pdf みたいな日本語ファイルにアクセスすると ActionController::RoutingError が発生して死ぬ。

続きを読む

pull.rebase

git 2.27.0 以降で git pull を実行すると、 pull.rebase 未設定の場合は以下のように警告が出ます。 色々書いてあるのですが、2.26.0 以前の動作と同様で構わないので、僕は git config --global pull.rebase false として解決しました。

warning: Pulling without specifying how to reconcile divergent branches is
discouraged. You can squelch this message by running one of the following
commands sometime before your next pull:

  git config pull.rebase false  # merge (the default strategy)
  git config pull.rebase true   # rebase
  git config pull.ff only       # fast-forward only

You can replace "git config" with "git config --global" to set a default
preference for all repositories. You can also pass --rebase, --no-rebase,
or --ff-only on the command line to override the configured default per
invocation.

参考:

blog.agile.esm.co.jp