karubabuの日記

タイトルに解決と書いているものがあるけれど、別に付いていない物は解決していないというわけではないです。つまるところ記事を書いた後に解決してちょっと嬉しかったので付けました。

py3status iw: command failed

use_sudoが効かない人だった

なにがあった

py3status にあるwifi moduleを使ったらタイトルの様な文字列が赤字で出た
use_sudoを使っても上手いこといかない

どうした

py3status/wifi.py at master · ultrabug/py3status · GitHub
ここの部分の通り、/sbin/iwを踏みにくるので適当にシンボリックリンクを張る ln -s /usr/sbin/iw /sbin/iw
私の場合はこんな感じだったと思う

おあいに

lnの引数の順番無限に間違えているきがする

mkinitcpioするとERROR: file not found: `fsck.btrfs' が出るけれど特に問題なく終了する

タイトルの通りで別に放置していても困っていなかった
でも気になるね

なにがあった

mkinitcpioすると(pacmanlinuxパッケージが落ちてきたりsystemd回りが更新されたりするとこれが始まる)

==> ERROR: file not found: `fsck.btrfs'  
==> WARNING: No fsck helpers found. fsck will not be run on boot.  

なんてログが流れてくる
でも特に困らないし普通にコマンドも正常終了する

どうした

root パーテションはfsckフックによって起動時にfsckが実行される(このフックは重要で、実行されていないと困った時に泣きを見るらしい archwikiがいってた)
ファイルシステムにbtrfsを使っているだけだとbtrfsに関するゆーてれてコマンドが導入されないので

# pacman -S btrfs-progs

することで解決される

おわりに

困る前に気がついてよかったね

参考: mkinitcpio - ArchWiki

DNS over https + dnsmasqする

トレンドなのでやった
特にこれといった目的はないです

なにをした

私の環境はarchなのでpacaurでdnsmasqと、
AURからGitHub - m13253/dns-over-https: Client and server software to query DNS over HTTPSを引っぱってくる

pacaur -S dns-over-https dnsmasq

素の状態で両方systemd経由で起動すると、bind「Address already in use」
と大激怒してくるのでこんな感じで適当に設定する

/etc/dnsmasq.conf

# stops dnsmasq from reading resolv.conf
no-resolv

# add your secureoperator server as the upstream dns server
server=127.0.0.1#5353

ポート番号は何でもよいと思うけれど、#5353をコメントだと思って消すとひどい目にあう(1敗)

/etc/dns-over-https/doh-client.conf

listen = "127.0.0.1:5353"
#以下をCloudFlareを使う用に変更した

ここのポート番号はdnsmasqと同じものを使う

おわりに

wiresharkで確認すると、まず普通にDNSdns.cloudflare.comを名前解決しに行きそこで手に入れたアドレスに対してDNS over HTTPSを叩いているのが見える
最初ip.addr == 1.1.1.1してフィルタを書けてもそれっぽい通信が無くてめっちゃ焦りました(1敗)
使用感は別に変わらないのでdoh-client.confでverbose = trueにしてsystemd経由で眺めたりdigを叩いて確認するときれいでよかった

20180417追記:
AURのパッケージにもアップデートが来た(元々ブログを書いた時にはout of date flagが付いていた)
その結果upstream_googleに"https:/1.1.1.1/dns-query"の様にアドレスを直に書けば初動のdns.cloudflare.comへ名前解決もしなくてよくなったみたい(今までも出来たものなの?)
でもここに"https://[2606:4700:4700::1111]/dns-query"とipv6を書くと403が返ってくる
私が何か間違っているのか対応していないのかわからん…(ジャガー)
20180418追記:
なんか適当なことを言っていたと気が付いたのを直した

openvpnがERROR: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)

無いじゃなく君が作るの!!!!!!つくって!

なにがあった

vpngateのopenvpn用コンフィグファイルを使って接続しようとしたら出た

どうした

此れをやる前にpacaur -Syuしてカーネルの更新が入ったのが原因そう?
https://bbs.archlinux.org/viewtopic.php?id=163377
ここでも同じような雰囲気で解決したものがあった

アップデートが入ったら再起動しようね

archliunx USBデバイスが認識しないやつが解決した

archliunx USBデバイスが認識しない - karubabuの日記
これの原因が分かりました

原因

mstdn.maud.io
ddした後使っていない元/bootパーティションをそのままにしていた事が全ての元凶でした
* 同じUUIDを持つパーティションが出現する
* 初動はNvme ssdBIOSが読みこめないため問題なくUSB側にある/bootが読みこまれる * GRUB起動後にシステムが起動し/etc/fstabを読みにいってマウントしようとする
* 同じUUIDの物があるので適当な方を選ぶ、今回だと常に使っていない方(NVMeSSDにある方)を読む * 結果起動した時の情報とシステムで認識した/bootにある内容が一致しなくなる
* 諸処の問題が浮上する

この流れだったようでした

どうした

fstabをUUIDでない指定を使ってUSBメモリにある/bootをマウントする様に変更する

よくよく考えるとしょうもなかった
これでまた思考停止yaourt -Syu できるね
いつになってもうまいこと箇条書きが出せないけれどまあ分かるしたるいからいいや

ローカルにcgitを立てた時に困ったやつ

systemd-nspawnの☝️でnginxが動いているみたいなやつです
原因が分かったわけではなく、なんか直ったといういつものあれでこわいね
基本的にarch wiki
systemd-nspawn - ArchWiki
cgit - ArchWiki
このあたりを見ています

続きを読む

デスクトップlinux用keybaseで日本語入力が出来無い

久し振りにまたnihonngo ga utenai案件に遭遇した
インプットメソッドモジュールとかいうのが必要になるという話だった

なにがあった

[Urgent] Keybase desktop clients prevent switching IME to Japanese language · Issue #9861 · keybase/client · GitHub
これに遭遇した
既に修正はマージされているという話なのでpacaur -S keybase-gitで最新を持ってくれば解決やん!
と思っていたけれど解決しない
いしゅーの通り、systemd経由でない起動方法
+ /opt/keybase/keybase &で起動
+ export KEYBASE_SYSTEMD=0してから起動
だと問題なく日本語が打てる

解決策

fcitx-diagnoseしてみると、

## Gtk:
1.  gtk - `${GTK_IM_MODULE}`:

    環境変数 GTK_IM_MODULE は "fcitx" に正しく設定されています。

2.  `gtk-query-immodules`:

    1.  gtk 2:

        gtk `2.24.31` 用の `gtk-query-immodules` を `/usr/bin/gtk-query-immodules-2.0` に見つけました。
        バージョンライン:

            # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.31

        **Failed to find fcitx in the output of `/usr/bin/gtk-query-immodules-2.0`**

        **gtk 2 用のFcitx im モジュールが見つかりません。**

    2.  gtk 3:

        gtk `3.22.26` 用の `gtk-query-immodules` を `/usr/bin/gtk-query-immodules-3.0` に見つけました。
        バージョンライン:

            # Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.22.26

        gtk `3.22.26` 用のFcitx im モジュールを見つけました。

            "/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so" 
            "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*" 

3.  Gtk IM モジュールキャッシュ:

    1.  gtk 2:

        gtk `2.24.31` の immodule cache を `/usr/lib/gtk-2.0/2.10.0/immodules.cache` に見つけました。
        バージョンライン:

            # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.31

        **Failed to find fcitx in immodule cache at `/usr/lib/gtk-2.0/2.10.0/immodules.cache`**

        **キャッシュに gtk 2 用の fcitx im モジュールが見つかりません。**

    2.  gtk 3:

gtk 2 用のFcitx im モジュールが見つかりません。
キャッシュに gtk 2 用の fcitx im モジュールが見つかりません。

keybaseはgtk2を使っているしこの辺が問題そう?
と思いpacaur -S fcitx-gtk2すると問題なくsystemd経由でも日本語入力が出来るようになった

おわりに

最強コマンドfcitx-diagnoseほんとえらい
今更使うと思っていなくてfcitx-gtk2を入れていなかったのもあったり、

Fcitx - ArchWiki

インプットメソッドモジュール

GTK+ や Qt プログラムでより良い動作を得るには、必要に応じて fcitx-gtk2, fcitx-gtk3, fcitx-qt4, fcitx-qt5 パッケージをインストールしてください。もしくは fcitx-im グループで全てのパッケージをインストールできます。モジュールをインストールしなくてもアプリケーション上でインプットメソッドは動作しますが、フリーズしたりプレビューウィンドウの位置がおかしくなったり、プレビューが表示されなくなったりします。 

とここを見る限りだとちょっと困るくらいの内容なのかな??と思って読んでいたので、インプットメソッドモジュールを甘くみていました…