使いやすいように環境を整える Arch Linux

2020年4月5日

ArchLinux32の設定

色々やった記録です。失敗もあります。

自分が使用するパッケージを追加する

sudo pacman -S libreoffice-fresh libreoffice-fresh-ja
sudo pacman -S keepassxc
sudo pacman -S chromium
sudo pacman -S firefox
 # firefox-i18n-ja はなくても、laguegeでJapaneseを選べば日本語表示になる!?
sudo pacman -S papirus-icon-theme
sudo pacman -S gparted
sudo pacman -S rsync
sudo pacman -S rxvt-unicode  # terminal

sudo pacman -S bleachbit
sudo pacman -S pacman-contrib
sudo pacman -S smplayer
sudo pacman -S veracrypt  # fat マウント時には utf8=no

sudo pacman -S archlinux-wallpaper
sudo pacman -S wget
sudo pacman -S gnome-disk-utility
sudo pacman -S powertop
sudo pacman -S xprintidle

ビープ音を消す
echo "blacklist pcspkr" | sudo tee -a /etc/modprobe.d/nobeep.conf

sudo pacman -S gimp
合計ダウンロード容量:   20.16 MiB
合計インストール容量:  261.01 MiB

yay -S porg
yay -S qlipper-git  # AURにしかない(aur/qlipper 5.1.2-1 もある)

nano 設定

シンタックスカラーリング(ハイライト)の設定
/etc/nanorc に追加
include "/usr/share/nano/*.nanorc"

/etc/profile に追加
export EDITOR=nano

ログイン画面 SDDM

sudo -i
sddm --example-config > /etc/sddm.conf.d/sddm.conf

/etc/sddm.conf.d/sddm.conf
Current=elarun

grub

sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet" を変更する
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3"

sudo grub-mkconfig -o /boot/grub/grub.cfg

HOME/bin にパス

~/.profileを作成

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

AUR yay を導入する

$ sudo pacman -S --needed base-devel git

$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si

...

パッケージ (1) go-2:1.15.5-2.0
合計ダウンロード容量:  114.13 MiB
合計インストール容量:  452.30 MiB
...

goがインストールされるため、そのディスク容量が必要。

/etc/pacman.conf の Color 行をアンコメント

~/.bashrc を編集

exitstatus()
{
    if [[ $? == 0 ]]; then
        echo ':)'
    else
        echo $? 'D:'
    fi
}
col='\[\e[1;46m\]'
export PS1=$col'[\u@\h \W]\[\e[m\] $(exitstatus) ' 

ウィンドウマネージャーをインストールする

IceWMの場合
sudo pacman -S icewm gnome-terminal

i3wmの場合
sudo pacman -S i3-wm gnome-terminal

i3wm用にキーを変更
~/.Xmodmap
clear lock
add mod4 = Caps_Lock
keycode 102 = Super_L
keycode 100 = Super_R

Qtのエディターをインストール

sudo pacman -S notepadqq

root パスワードがいらない GVFS マウント

https://wiki.archlinux.jp/index.php/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A3%E3%81%AE%E6%A9%9F%E8%83%BD#.E3.83.9E.E3.82.A6.E3.83.B3.E3.83.88

以下のルールは storage グループでシステムデバイスのファイルシステムのマウントを可能にします。

/etc/polkit-1/rules.d/10-enable-mount.rules

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("storage")) {
        return polkit.Result.YES;
    }
});
この通りにやっているが、rootパスワードのダイアログが出る。

rules.d ディレクトリの権限を「その他」も「表示」に変えてみる。
2回目以降はダイアログが出ないようだ。

grubだけ別パーティションへ移動

mount /dev/sda13 /mnt
grub-install /dev/sda13 --force --target=i386-pc --recheck --boot-directory=/mnt/boot --debug
grub-mkconfig -o /mnt/boot/grub/grub.cfg
mkinitcpio -p linux

これを /boot を含むルートを BtrFSにする時などに応用する。

ルートを別パーティションへ移動

別パーティションのLinuxで起動する。
コピーする。

sudo mount /dev/sda12 /mnt/from
sudo mount /dev/sda11 /mnt/to
sudo rsync -aHAXvP --numeric-ids /mnt/from/ /mnt/to/
sudo nano /mnt/to/etc/fstab # 編集する

sudo arch-chroot /mnt/to

grub-install /dev/sda11 --force --recheck --debug
grub-mkconfig -o /boot/grub/grub.cfg
mkinitcpio -p linux
exit

sudo umount -R /mnt/to
sudo umount /mnt/from

再起動。マルチブートのメニューから新しいArchを起動させる。

/usr を別パーティションへ移動

https://wiki.archlinux.jp/index.php/Mkinitcpio#.2Fusr_.E3.83.91.E3.83.BC.E3.83.86.E3.82.A3.E3.82.B7.E3.83.A7.E3.83.B3.E3.82.92.E5.88.86.E5.89.B2.E3.81.99.E3.82.8B

/etc/mkinitcpio.conf
HOOKS=(base .... ) に usr shutdown を追加する。/etc/mkinitcpio.conf 内のコメントを参照。
これがないと、起動時に エラー /sbin/init が見つからない!

BtrFS と JFS で使用サイズを比較

ルートシステムをBtrFSへコピーする
sudo rsync -aHAXvP --numeric-ids /mnt/from/@arch/ /mnt/to/@arch/

ルートシステムをJFSへコピーする
sudo rsync -aHAXvP --numeric-ids /mnt/from/@arch/ /mnt/to/
...
sent 3,866,743,306 bytes  received 3,040,133 bytes  2,876,093.23 bytes/sec
total size is 4,100,084,970  speedup is 1.06

比較
JFS:   4.10GiB
BtrFS: 2.03GiB  約 1/2

pacman -S jfsutils

SDDM & xscreensaver を lightdm & light-locker に代える

sudo systemctl disable sddm

sudo pacman -Rs sddm xscreensaver
sudo pacman -S lightdm light-locker lightdm-gtk-greeter-settings
sudo systemctl enable lightdm.service

light-locker で画面ロック中に サスペンドすると パスワードを求められる

回避策: xscreensaverに代えてみる
sudo pacman -Rs light-locker
sudo pacman -S xscreensaver

パスワードなしで サスペンドするようになった。
問題:モニタの電源が オフにならない

充電制御

https://wiki.archlinux.jp/index.php/TLP
sudo pacman -S tlp tp_smapi
sudo systemctl enable tlp.service
sudo systemctl enable tlp-sleep.service  ← エラー Failed to enable unit: Unit file tlp-sleep.service does not exist.

sudo systemctl mask systemd-rfkill.service
sudo systemctl mask systemd-rfkill.socket

/etc/tlp.conf を編集

START_CHARGE_THRESH_BAT0=50
STOP_CHARGE_THRESH_BAT0=80

50 80 % に設定
再起動無しで `sudo tlp start` で設定変更できる。
sudo tlp-stat で確認できる

Ubuntuで人気のあるSnapをインストール

yay -S snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo systemctl enable --now apparmor.service
sudo systemctl enable --now snapd.apparmor.service

パッケージのダウングレード

https://wiki.archlinux.jp/index.php/%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89

Chromiumが不具合があり、ダウングレードをやってみる。

yay -S aur/downgrade

export DOWNGRADE_ARCH=pentium4
export DOWNGRADE_ALA_URL=https://archive.archlinux32.org
downgrade chromium

選んだ:   15)  chromium    79.0.3945.117  1.0  pentium4  (remote)
IgnorePkg = chromium が追加された。
ダウングレードしても不具合は解消しなかった

その後、Chromiumが修正され、updateした。

Pirnter 印刷

https://wiki.archlinux.jp/index.php/CUPS
sudo pacman -S cups

GUIは、print-manager(KDEのツール 合計インストール容量:  98.08 MiB)と
system-config-printer(GTK+のツール 合計インストール容量:  21.90 MiB)
容量が小さい方にする

sudo pacman -S system-config-printer
これで アプリケーションメニューに「印刷設定」が現れる。

Printer ドライバー

sudo pacman -S gutenprint ghostscript
cups-pdf も必要か?

または・・・

yayではエラー!

yay -S cnijfilter-ip2700series
==> Error: Could not find all required packages:
    lib32-libcups (Wanted by: cnijfilter-ip2700series)
    lib32-popt (Wanted by: cnijfilter-ip2700series)

そこで
git clone https://aur.archlinux.org/cnijfilter-ip2700series.git
cd cnijfilter-ip2700series/
sudo pacman -S --needed libcups popt libpng12
makepkg -iA

これはプロパティの中の細かい設定が少ない。

ハードディスクを何が使用しているのか?

duコマンドで調べる。

sudo du -sh /var/cache/* | sort -h
...
204K    /var/cache/fontconfig
340K    /var/cache/cups
736K    /var/cache/snapd
3.4M    /var/cache/man
1.8G    /var/cache/pacman

/var/cache/pacmanを空にするには sudo pacman -Scc とする。

sudo du -sh /usr/lib/* | sort -h
...
40M     /usr/lib/libgo.so.16.0.0
79M     /usr/lib/modules
92M     /usr/lib/libLLVM-10.so
105M    /usr/lib/gcc
131M    /usr/lib/python3.8
152M    /usr/lib/python2.7
191M    /usr/lib/chromium
220M    /usr/lib/firefox
430M    /usr/lib/libreoffice
477M    /usr/lib/go
506M    /usr/lib/firmware

不要なパッケージを pacman や yay で削除して使用量を減らす。
bleachbit で削除する。 sudo bleachbit

参考: https://wiki.archlinux.jp/index.php/Pacman_%E3%83%92%E3%83%B3%E3%83%88

不要になった(依存されていない)パッケージを削除する

yay -Yc

AURからインストールした一覧

pacman -Qqem または pacman -Qem
(公式パッケージの一覧は pacman -Qen
使用していないパッケージを削除してハードディスクを空ける。
yay -Rs パッケージ名
sudo pacman -Rns $(pacman -Qtdq)

キーボードもマウスも動かない時

出来るだけ安全にシステムをシャットダウンする。
Alt+PrtSc+APRSEIUO ゆっくりキーボードを押す。
これで電源が切れる。

FAQ

  • サスペンドや再ログインで wifi に接続できない
    →NetworkManager以外を使ってみる  connmanを使う
  • 日本語表示にならないアプリが多数
    → Localeの設定が確認 localeコマンド
  • PCManFM-Qtでパーティションがでない
    → gvfsをインストールする
  • PCManFM-Qtで暗号化パーティションをマウントすると `キーリング (The name org.freedesktop.secrets was not provided by any .service files) にパスフレーズを保存するときにエラーが発生しました`
    → gnome-keyringをインストールする

ToDo

  • [ ] スクリーンセーバーのエラー "xdg-screensaver lock" の実行に失敗しました。 xdg-screensaver 互換のロッカーまたはスクリーンセーバーがインストールされ実行しているか確認して下さい。
  • [ ] gtkアプリで日本語入力できない fcitx-gtk3。uimに変える?
  • [ ] ファイルの関連付けがうまくいっていない!?
  • [ ] PCManFM-Qt マウントする際にrootパスワードを入力不要にする Ubuntuのように。