ログ日記

作業ログと日記とメモ

Linux Kernel 5.8 で Ansible の service, systemd がエラーになる

めっちゃハマった。
別のPCからAnsibleをそのまま持ってきてコンテナに実行したらエラーになった。

RUNNING HANDLER [common : reload nginx] ****************************************************************
 [WARNING]: The service (nginx) is actually an init script but the system is managed by systemd

fatal: [app-php.local]: FAILED! => {"changed": false, "msg": "Service is in unknown state", "status": {}}

ansibleのserviceをsystemdにしてもダメ。
変わったのはカーネルバージョンのみで、OSのバージョンは同じ。
Debianカーネルだけ5.8にしたものでエラーが出た。
カーネル5.8のsystemdのバグらしい。

github.com

コンテナだから中のゲストカーネルも同じ5.8になっちゃうよねえ…。
現段階では、カーネルバージョンを下げるか、少し待って最新版をDLするか、修正を自分で適応させるしかないっぽい。
まだissueのスレッドは進行中。

2日前に回避用の修正はプルリクされたようだ。
github.com

カーネルのバージョン5.7にできれば一番良いんだろうけど、公式パッケージがないとつらい。buster-backports のカーネルって新しいカーネルが出るたびにバージョンアップされるのかな?
5.9になったら直っていることを祈りつつ。
ひとまず、設定が進まないのでパッケージで入れたansibleの /usr/lib/python3/dist-packages/ansible/modules/system/systemd.py を手動修正した。

Debian の KDEデスクトップ設定メモ

gdm3をインストール。
大量に関連パッケージがインストールされるが、気にしないことにした。
セッションはKDE


Alt + Tabのアニメーション
・システム設定 > ディスプレイとモニタ > Compositor > アニメーションの速度
Alt + Tabだけの動作は変えられない?

Alt + Tab のUI
・ウィンドウの操作 > タスクスイッチャー > 選択したウィンドウを表示するの下のアイコンでテーマを選ぶ
 MediumDefault に設定した
  2020/10/29 apt install kwin-addons してからLarge Icons にした

日本語入力

apt install ibus-mozc

MacIME切り替え設定にする。変換/無変換/かな でひらがな <=> カタカナの変換は無し。


konsoleのデフォルトプロファイル設定。

vi .config/konsolerc
[Desktop Entry]
DefaultProfile=default.profile

default というプロファイルを作ったら、このような指定にする。
メニューからの変更や起動時の konsole --profile default では駄目だった。(Ctrl + Shift + N で新しいウィンドウを作ったときに無効になる)
メニューバーをオフにしたあとにオンで立ち上げるには konsole --show-menuba で起動する。
検索すると konsolerc の置き場所が色々出てくるけど、自分の場合(Debian buster)は .config だった。

Debian 10 に Wine 5 をインストール (Photoshopインストールできず)

Debian - WineHQ Wiki
apt の「壊れた変更禁止パッケージ」への対処方法 | marmooo's blog
Winetricks - WineHQ Wiki
Installing Adobe Photoshop on Linux – Linux Hint
Solved: Is it legal to use Photoshop with wine? - Adobe Support Community - 9793726
Wine で WIndows アプリ インストール 設定 - memomuteki


取り敢えず実行したコマンド一覧のメモ。
詳しくはリンク先参照。

dpkg --add-architecture i386

wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key

echo "deb https://dl.winehq.org/wine-builds/debian/ buster main" >> /etc/apt/sources.list.d/wine.list

apt update


wget https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_18.04/amd64/libfaudio0_19.07-0~bionic_amd64.deb
wget https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_18.04/i386/libfaudio0_19.07-0~bionic_i386.deb
dpkg -i libfaudio0_19.07-0~bionic_amd64.deb
apt install libc-bin
apt --fix-broken install
dpkg -i libfaudio0_19.07-0~bionic_i386.deb
apt install --install-recommends winehq-stable

apt install playonlinux

PlayOnLinuxhttps://www.playonlinux.com/en/download.html 公式のバージョンと同じだったのでaptでインストールした。
PlayOnLinuxの「インストールメニュー」で止まるバグの根本的な解決法 - Qiita
翻訳バグがあるので修正。

apt install gettext
cp /usr/share/locale/ja/LC_MESSAGES/pol.mo .
msgunfmt pol.mo -o fix_pol.po
vi pol.po
msgfmt fix_pol.po -o fix_pol.mo

PlayOnLinuxにwineが表示されないので、再度wineをインストールした。winehq-stableはインストールしなくて良かったかもしれない。というか複数バージョンでややこしくなるから、どちらかに統一した方が良い…?


インストールメニューからAdobe CCをインストールしようとすると、Wine 3.0.3 がインストールされた。先に wine 5 をインストールしていても同じっぽい。どういうことだろう…。


UbuntuにAdobeCCをインストール - Qiita

cd
mkdir bin
cd bin
wget  https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks

./winetricks allfonts
winetricks atmlib gdiplus vcrun2008 vcrun2010 vcrun2012 vcrun2013 vcrun2015 atmlib msxml3 msxml6 gdiplus

vcrun2012、vcrun2015でエラーが出たので、それはスルーで。vcrun2017があったので入れる。
windowsの バージョンを10にする。

wineboot -u

winecfg

古いインストーラhttp://ccmdl.adobe.com/AdobeProducts/KCCC/1/win32/ACCCx4_5_0_331.zip はクラッシュ、自分のWindowsでDLしたインストーラーは"captcha validation has failed"と出てログインできない。インストーラーの起動は出来たんだが。



winehq-staging を入れてバージョンを上げて再度トライ。~/.wine は一旦削除。
そうするとwinetricksでエラーが起きず、古いAcobe CCインストーラーはインストールできた。でも立ち上げるとローディングアイコンがずっとクルクルして進まなかった。


WineHQ - Adobe Photoshop CC 2020 (21.0)
これは無理なのかな。


VMwareWindowsを入れてもいいけど、デュアルブートWindowsが無駄になるんだよなあ…。どうしよ。


追記:
WineHQ Bugzilla – Bug 47015 – Photoshop CC2019 login screen content does not render without native msxml3
最後のコメントに、captchaについて書かれていた。2020-09-22 なので最近の更新?もう少し早く試せば良かったか…。

Lenovo ThinkPad P17 に Debianをインストールする

今までMacBook ProVMware FusionLinux を使っていたんだけど、もう直接Linuxを使った方がいいかと思って。
新しいノートパソコンはLenovoのでかいやつ。17インチ。
www.lenovo.com


ThinkPad P17 はWindows用のドライブとは別に、空のSSDがもう一つ付けた。メモリも増やし、ディスプレイも3840 x 2160 に変更した。
これをDebian 10 とWindows 10 でデュアルブートにする。デュアルブートで設定するのは15年ぶりぐらい。

一つ前のバージョンなら、ここに公式のセットアップガイドがある。
https://download.lenovo.com/pccbbs/mobiles_pdf/lenovo_thinkpad_p53_p73_debian10_installation_v1.0.1.pdf
UEFI BIOSのデザインが全然変わっているが、項目はだいたい同じなのでここの通りに設定する。

注意点は、Windowsも使うなら、先にWindowsのBitLocker ディスクの暗号化を解除しておく。
これをやらずにBIOSのセキュリティを無効にしてしまうと、Windowsのディスクが読み込めなくなる。幸い、Windowsのアカウントでログインして回復キーを取得するように案内されるので、その通りにして事なきを得た。アカウントの種類によっては詰んでた可能性がなきにしもあらず。
Windows 10 Homeだったので適当にoutlookのメールを新規登録してアカウントは作ってあった。

Boot Order は、USB HDD?とりあえずUSB系を上に移動する。
「Section 2 – Discrete vs Hybrid Graphics」のハイブリッドもやめて、「Discrete Graphics」を選んでnvidiaだけを使う設定にする。



DebianインストーラーはUSBにコピーする。
4.3. USB メモリでの起動用ファイルの準備

# cp debian.iso /dev/sdX
# sync

特にddとかツールとかではなく、ただコピーする。(mountはしない)
最近のインストーラーは、これだけで旧BIOSUEFIと両方に対応したインストールメディアが作れるみたい。


有線LANは繋いでおく。ポートがあって良かった。有線がなかったら更に面倒なことになっていた。
taskselでデスクトップはKDEを選ぶ。本当はLXDEかMATEが良かったんだけど、スケーリング解像度に対応しておらずフォントやメニューのサイズがおかしくなるので、諦めてKDEに。
nvidia-settings でも倍率を設定できるけど、ダメっぽかった。
空のディスクで一つのパーティションでインストールする。


ドライバはPDFの通りにせずに、apt install nvidia-driver を入れる。Wi-Fiドライバはまだ入らない。
en:users:drivers:iwlwifi [Linux Wireless]
カーネルを5.2以上にバージョンアップする必要がある。

sources.list に backports を書いて、linux-image-5.8 を入れる。
細かいバージョンごとに全部選べるみたいだけど、昔はこんなのあったっけ?新しいカーネルが順次追加されていってるようで、これならDebianでハードウェアが認識せずに困ることは無くなるのかも。

取り敢えず一覧の中から新しい Linux Kernel 5.8.0-0.bpo.2-amd64 をインストールすることにした。
カーネルのバージョンを上げたら

apt install -t buster-backports nvidia-driver
apt install -t buster-backports firmware-iwlwifi

でドライバのインストール。
この辺、ちょっと試行錯誤してPDFの通りにソースから入れたりもしたので、これだけで動かないこともあるのかも。
https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi/iwlwifi-qu-48.13675109.0.tgz
一応これもDLしてたけど、同じファイルが firmware-iwlwifiパッケージ(中身は違うっぽい) にあった。
ここでnvidia-driver を入れているので、ここまでの作業はコンソールの黒い画面に超小さい文字で作業しないといけない。ちょっとつらい。


あとDebianインストール時にGRUBのインストールをどうするかという質問がなかった。
勝手にデフォルトのブートローダーが書き換わってしまった?再起動したらGRUBになる。問題ないと言えば無いんだけど…。
ブートローダーはWindows Boot Managerのまま、WindowsとLinuxでデュアルブート/GRUB4DOSを使ってデュアルブート - LinuxJapanWiki - アットウィキ
こっちをやろうと思っていた。インストールはAdvancedを選ぶ必要があったかもしれない。ほとんど何の質問もなくすぐインストール完了までいくとは思わなかった。
次回、何らかのアップデートでブートローダーが書き換わることがあったらやってみる。

せっかくハードウェアに指紋認証があるので、Linuxでも使いたい。

https://gitlab.freedesktop.org/libfprint/libfprint/-/tags
最新版をexperimentalでインストールすれば、バージョン的には対応しているっぽいけれど
https://askubuntu.com/questions/1214592/fingerprint-reader-lenovo-thinkpad-l13-synaptics-driver
一筋縄ではいかないようだ。

lsusb | grep Synaptics
Bus 001 Device 003: ID 06cb:00bd Synaptics, Inc.


今は無理だけど

apt install libpam-fprintd
pam-auth-update

を実行すると一括でpam設定してくれる。

2020/10/16追記:
今試したらいけた。
元々インストールしていたfprintd関連のパッケージを全て apt remove --purge してから、もう一度

apt install -t experimental libpam-fprintd

でインストールし直した。それでrootでfprintd-verifyすると普通に動いた。
指紋の登録は

fprintd-enroll

を実行する。
その後、pam-auth-update で各種パスワード入力の場所で指紋認証が使えるようになる。

デスクトップへのログインは、一度パスワードでログインしないと対応されない?ログインしてからログアウトして、再びログインするときには指紋認証が出るんだけど。
sudo はデフォルトが指紋認証になっていて、パスワード認証はしばらく待つ?
ちょっと使い勝手が分からない。


2020/10/20追記:
Support fingerprint reader login · Issue #284 · sddm/sddm · GitHub
sddmじゃなくてgdmを使えということか…。
gdm3を入れたらgnome関連のパッケージが大量にインストールされた。見た目が良くなって指紋認証ログインも使えるようになった。
ただ、起動直後は10秒ぐらい待たないとデバイスが認識されない。
askubuntu.com
うーん…未解決。画面ロック時の指紋認証は、パスワードが空の状態でEnterを押せばすぐにできる。


それから、関係は不明だけれどWi-Fiのパスワードが記憶されなくなってしまった。パスワードの保存を all users (not encrypted) にすれば記憶できた。最初の設定がどうなっていたか分からん…。not encryptedでいいんだっけ?
kde wallet使ってないから元々encryptedは無理な気もする。

noindex と canonical を同時に指定するとGoogleクローラーはどう動くかというテストのための記事

noindexとcanonicalを併用するのは良くない。というのがもっぱらの通説。
何っ! PWAがデスクトップでも動くだと? しかも最高だと?【SEO記事12本まとめ】 | 海外&国内SEO情報ウォッチ | Web担当者Forum
重複コンテンツ対策にはrel=canonicalを推奨、noindexタグではシグナルがすべて失われる | 海外SEO情報ブログ

リンクをたどっていくと
2 questions about the canonical tag : TechSEO
No Index & Rel Canonicals At The Same time? No Way!
この辺りの記事に行き着く。

もう少し詳しい記事は
Rel Canonical and No Index No Follow on Same Page Google SEO
こっちにある。


でもねえ…。
canonicalとnoindexはまったく別の概念で、検索エンジンにインデックスさせたくないことと正規URLに誘導したいということは両立する。
そもそもnoindexを解析するためにはhtmlを読んでいる必要があり、canonicalも読んでいるはずなんだけど。
メタ情報という意味では同じだし、検索エンジンには出したくないけどSNSやリンク共有では綺麗なURLを見せたいというユースケースもあるはず。

というわけで、noindex + canonical のページへのリンクを貼っておく。
The auto wiring container for only one file with 200 lines.


現状、Googlebot のクローラーは noindex があっても canonical の方のURLも同時に見に行ったのはアクセスログで確認した。サーチコンソールにもどこからもリンクされていないcanonicalの方のURLが登録されていた。

手抜きして文章をコピーしたので検索結果には出てきてない模様。コピー元の方が出てきた。
noindexが効いて出てこないのか、重複コンテンツで出てこないのか、分からなくなってしまった。
もう一度文章を変えて様子見中。

最初の1回だけcanonicalを見に行ったのか、常に見に行くのかのテストにもなる。
テストページじゃなくてもうちょっとちゃんとしたサイトが欲しいところだけど。

xmodmap をログイン時(Xセッション起動時)に実行する

Debuan buster にアップグレードしたら xmodmapが自動実行されなくなっていたのでメモ。

以前やった設定は
MacBook Pro の初期設定のメモ その2 - ログ日記
ここ。
Linuxの設定じゃなくてMacの設定として書いてた。

それで、.xsessionrc や .xinitrc や .xsession のどれがどうなっているのかあまり把握していなかったのでメモ。


.xsessionrc というのはDebian系専用の設定らしい。
ディスプレイマネージャーがどれでも実行される。

rg .xsession /etc/X11/

とかで検索すれば実際の動きを調べられる。

.xsessionや.Xsession(この順で探索されて先に見つかった方)は、設定があればスタートアップスクリプトとしてデフォルトのx-session-managerの代わりに実行される。
.xinitrcは手動でstartxしたとき用?

.xsessionrcは

if [ -r "$USERXSESSIONRC" ]; then
  . "$USERXSESSIONRC"
fi

で読み込まれる。(実行ではない)


それなら今までの設定で合ってるじゃん、と思って sleep を 3 から 10 にしたら起動できた。
GUIのログインセッションの起動で結構待たないとダメなんだね。


以前はスクショだったのでテキストで再掲しておく。

$ cat .xsessionrc 
/home/nishimura/bin/run_xmodmap.sh &

$ cat bin/run_xmodmap.sh 
#!/bin/bash

sleep 10
/usr/bin/xmodmap /home/nishimura/.xmodmap

$ cat .xmodmap
remove lock = Eisu_toggle
remove mod1 = Alt_R


10/5 追記
PC立ち上げ時では実行されなかった。
もっとsleepしないとダメ?何か他にGUI系が立ち上がったトリガーがあれば良いんだが…。

10/7 追記
実行できるまで繰り返すことにした。

until /usr/bin/xmodmap /home/nishimura/.xmodmap; do
  sleep 3
done

それはそうと、ゾンビプロセスがずっと残ってる。何か起動の仕方を間違っている気がしないでもない。

「わかる」と「読める」と理解する

圏論の本を読んでいてよく詰まるのが、数学記号が読めないということ。
数学記号の表 - Wikipedia
色々あるけど、どうやって読むんだろうか。
それとも数学の人は読んでないのかな?


例えば「192.168」と書いてあれば「イチキューニーイチロクハチ」と読む。「ヒャクキュージューニーテンヒャクロクジューハチ」とは読まない。
「192.168.0.0/24」と書いてあれば…これは読めない。192.168.0 のネットワークね、と頭の中で考える。「スラッシュニーヨン」とは読まない。読むとしたらどちらかというと「ニーヨン」じゃなくて「ニジューヨン」だ。
「192.168.0.0/28」と書いていれば…IP 16個ね、と考える。読まない。「192.168.0.0/27」と書いていれば…ちょっと考えたり数えたりする。/27 には慣れていない。

$item->name と書いていれば、「アイテム、ネーム」と(頭の中で)読む。「アロー演算子」という呼び方は知っているけれど、「アロー」は読まない。

heightは誰かに喋るときは「ハイト」だけれど、頭の中では「ヘイト」と読んでるっぽい。width は読んでない。喋る必要があるときは「幅」って言ってる。
column は明らかに「カラム」だけど、頭の中では「コラムン」と言ってる気がする。


音として読めなくても、理解できるし使えるし、日常的に使っているのに読みづらいということが起こっている。



数学の式なんかの場合はどうなっているんだろうか?
例えば
写像の合成 - Wikipedia
ここにある式が読めなくて、読めないからそこで文章を読む流れが詰まる。
・とか○とか矢印とか色々あるし、xもXもある。筆記体とかギリシャ文字とかもある。
でも、もしかして読む必要はないのかな?
どういう手順で音として読まずに理解するのか、上の192.168/24とかの例は自分のことなのにあまり分かってないな。



「192.168.0.0/27」は理解していると言えるけれども、見て「わかる」という感覚までにはなっていない。
「192.168.0.0/24」は感覚的にわかるレベルになっている。「下位8ビットのアドレス空間」「クラスC」「255.255.255.0」などがぼんやり思い浮かぶ。
もし「192.168.0.0/13」とか書かれていたら何も想像できないので、紙に書くようなことをしないと頭に入ってこないし、そのときは覚えてもたぶんすぐ忘れる。


つまり…どうすれば良いかというと、結局数をこなして慣れるしか無いということかな。


他には、ギターを習っていたけれどピアノは習っていないので、ト音記号は読めるけれどもヘ音記号は読めない。
しかも、読むより指で押さえる方が簡単ということが起こる。
たぶん読んでない。眺めているという感じかもしれない。

そういえばアルファベットの綴りが分からないときは、エアータイピングでキーボードを打つようにして綴りを思い出すことがある。「application」「transaction」「conversion」「extension」などは、指でタイプする方が早くて正確に思い出せる。手書きだとちょっと不安がある。
これもアルファベットの文字としては読んでないし書くことも無いけれど、タイピングは何度もしているからだ。


これをふまえて、数学記号に当てはめるとどうなんだろう?
やっぱりノートに書くような何らかの出力が必要な気がする。
練習問題的な、数をこなさないといけないのかもしれない。

ちなみに、昔はピアノで5曲ぐらい弾けたんだけど、今は弾けなくなったし楽譜を見ても弾けなくなってしまった。
たぶん基礎練をせずに曲だけ練習したからだ。
ヘ音記号を数えて読んだり、一音一音確かめながら弾いたら一応少しずつは進むんだけれど、わかるレベルまでいってない。
理解はしているからゆっくりやれば出来るけれども、音楽の場合はゆっくり理解していては曲にならない。

コンピューターに関しても、もし大学に行ってなかったらプログラムだけ書いて基礎的でCS的なことはやらなかったに違いない。
なかなか難しいものだね。


数の話だと、7 + 6 は 13 だけれども、これはどうやって導き出しているのか。
たぶん暗記している。数で暗記してるんじゃなくて、イメージで暗記してる。なんか6が7に引っかかってぽろっと3と3に分かれるイメージ。7は分かれない。10から引いたりもしていない。かけ算の九九のように覚えているわけでもない。
そういうこと?(どういうこと?)