Void Linux

Void Linuxとは何かについて説明します。Void Linuxとは、NetBSDの開発者らが開発した、独立したLinuxディストリビューションです。
Initシステムにrunit(ラニット)を使用し、不要なサービスは起動せずセキュアです。

御託

私がなぜVoidを使うのかと言うと、パッケージ管理システムXBPSが完璧に動作するということでしょうか。
通常のAPTやDNFはアップデートをサボると、パッケージの依存関係が壊れてしまいます。
何故壊れるか解らないし、そもそも壊れることが当たり前になっていることがおかしいのですが...
初めてrunitを使うと、サービスの登録に手こずりますが、
これも単純明快で/etc/sv/ないのサービスを/var/serviceにリンクを作ってあげるだけなのです。
この単純かつシンプルでかつセキュアなシステムに慣れたら、他へは戻れません。是非オススメしたいです。

Void Linuxが他のLinuxディストリビューションと違うところは、not forkで完全にゼロから設計されているということです。
もちろん、パッケージ管理システムもゼロから開発されています。このXBPSパッケージ管理システムは非常に高速に動作します。
通常のパッケージ管理システムと違い、依存関係が壊れにくいのではなく事実上壊れません。
不要なパッケージを削除する際にも、依存関係を完璧に削除します。
しばらくアップデートをサボっていた際にも、xbpsを先に更新して、その後すべて完璧に動作します。
問題を上げるならローリングリリースモデルなので、不具合が稀に出ることでしょうか。
しかし、ローリングリリースモデルでもパッケージが安定してからリリースされるので安心です。

注意

インストールの際にはlive-base-glibcがおすすめです。2024ではなく2023を使いましょう。2024年版はxzの脆弱性に汚染されています。
Tier 1 mirrorsを利用しましょう。Tier 2 mirrorsは頻繁に更新されません。遅れています。glibcとmuslバージョンがあります。

環境

私は、xorg lightdm xfce4 fcitx-mozc pipewireという構成でインストールしています。

sudo xbps-install -S xorg lightdm lightdm-gtk-greeter xfce4 gvfs pipewire rtkit pavucontrol fcitx-mozc fcitx-configtool neovim firefox
sudo xbps-install -S xfce4-pulseaudio-plugin xfce4-screenshooter xfce4-whiskermenu-plugin

fcitx-mozcはバージョン5が自動インストールされ自動起動するので、/etc/xdg/autostart/からfcitx5を削除してください。
追記: Google製のMozcに依存したくない場合、fcitx5-anthyをお使いください。

nvim ~/.profile
1
2
3
4
5
6
7
#!/bin/sh

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

pipewire &

必要なサービス

1
2
3
sudo ln -s /etc/sv/polkitd /var/service
sudo ln -s /etc/sv/dbus /var/service
sudo ln -s /etc/sv/rtkit /var/service

Bluetooth

https://docs.voidlinux.org/config/bluetooth.html

ハードウェア アンブロック(解除)

rfkill
rfkill unblock bluetooth

インストールとグループ追加(ユーザー名がvoidの場合)

sudo xbps-install -S bluez blueman libspa-bluetooth
sudo gpasswd -a void bluetooth

サービス起動

sudo ln -s /etc/sv/bluetoothd /var/service
sudo sv restart bluetoothd

Wi-Fi

Wi-Fiに接続するには、wpa_passphraseというコマンドを使用します。

wpa_passphrase SSID PASS > /etc/wpa_supplicant/wpa_supplicant-wlp3s0.conf

wlp3s0というのはip aコマンドで調べたやつと置き換えてください。

  • サービスの起動が必要になります。以下サービス起動コマンド
    1
    2
    3
    4
    5
    6
    7
    sudo ln -s /etc/sv/wpa_supplicant /var/service
    sudo ln -s /etc/sv/dhcpcd-eth0 /var/service
    sudo ln -s /etc/sv/dhcpcd /var/service
    
    sudo sv restart wpa_supplicant
    sudo sv restart dhcpcd-eth0
    sudo sv restart dhcpcd
    

NetworkManager

  • これはデスクトップ環境が整ってから利用できます。ここではXFCE4の場合の説明になります。

インストール

sudo xbps-install -S NetworkManager NetworkManager-openvpn network-manager-applet

サービス起動

sudo ln -s /etc/sv/NetworkManager /var/service
sudo sv restart NetworkManager

ログアウトまたは再起動

テーマ

私の好きなテーマはArcとPapirus-DarkとBreezeカーソルです。インストールは以下のコマンドから。

sudo xbps-install -S arc-theme papirus-icon-theme breeze-obsidian-cursor-theme

設定して反映させてください。

  1. ウィンドーマネージャー  → スタイル
  2. 外観 → スタイル + アイコン
  3. マウスとタッチパッド → テーマ

リポジトリNonFreeなど

sudo nvim /etc/xbps.d/00-repository-main.conf
1
2
3
4
repository=https://repo-fastly.voidlinux.org/current
repository=https://repo-fastly.voidlinux.org/current/nonfree
repository=https://repo-fastly.voidlinux.org/current/multilib
repository=https://repo-fastly.voidlinux.org/current/multilib/nonfree

KDE

Void LinuxをKDEで使いたい!以下を参照

https://docs.voidlinux.org/config/graphical-session/kde.html

XFCE4をインストールしている方。

sudo xbps-install -S kde5

KDEベースで構築する方

sudo xbps-install -S kde5 kde5-baseapps

KDE専用圧縮ソフト

sudo xbps-install -S ark

おまけ

fcitx5-mozc

sudo xbps-install -S fcitx5-mozc fcitx5-configtool
sudo nvim /etc/profile.d/fcitx.sh
1
2
3
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5

KDEシステム設定→キーボード→仮想キーボード→Fcitx5
Fcitxの設定のXIMを有効にしてください。

pipewire

nvim .config/autostart/pipewire.desktop
1
2
3
[Desktop Entry]
Type=Application
Exec=pipewire

auto login (ユーザー名: void)

sudo nvim /etc/sddm.conf
1
2
3
[Autologin]
User=void
Session=plasma

なぜKDEについて書いたかと言うと、XFCE4で謎の画面点滅バグが発生しているからです。

Zsh

インストール

sudo xbps-install -S zsh

https://ohmyz.sh/#install
https://github.com/zsh-users/zsh-autosuggestions
https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md

デフォルトのシェルを変更

chsh
/bin/zsh

Ntpd

インストール

sudo xbps-install -S chrony ntp
sudo ln -s /etc/sv/ntpd /var/service

ntpパッケージのシンボリックリンクがchronyやopenntpdになる。

パッケージ管理システムについて

  • パッケージ管理システムにXBPSパッケージ管理システムを使います。
sudo xbps-install -S arc-theme

S(シンク)してからインストールです。Sオプションがない場合は、シンクせずにインストールします。

sudo xbps-install -Su

S(シンク)u(アップデート)、アップデートコマンドです。

sudo xbps-query -Rs arc-theme

R(リポジトリ)s(サーチ)、検索コマンドです。

sudo xbps-remove -R arc-theme

R(リカーシヴ)再帰的に削除です。

Google Chromeのインストール方法

まさか、ビルドしないといけないの?いいえ、そんなことはありません。
Flatpakをインストールし、Gnome-Softwareを使ってインストールします!

sudo xbps-install -S gnome-software flatpak
flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo

これでコマンドは全てです。後は、Gnomeソフトウェアを開いて左上の検索窓からChromeと検索していただいてインストールしてください。
ログアウトか再起動すれば完了です。

画面点滅バグの直し方

以下をインストールします。

sudo xbps-install -S xf86-video-intel

このバグに関わらず、バグが発生したら以下のコマンドでカーネルエラーを確認してみると良いでしょう。

sudo dmesg

PipeWire

https://docs.voidlinux.org/config/media/pipewire.html

1
2
3
4
5
mkdir -p /etc/pipewire/pipewire.conf.d
ln -s /usr/share/examples/wireplumber/10-wireplumber.conf /etc/pipewire/pipewire.conf.d/
ln -s /usr/share/examples/pipewire/20-pipewire-pulse.conf /etc/pipewire/pipewire.conf.d/
cp /usr/share/pipewire/pipewire-pulse.conf /etc/pipewire/
cp /usr/share/pipewire/pipewire.conf /etc/pipewire/

RTリアルタイムについては、rt.を設定すると良い。rtkitサービスを有効にすること。
周波数は48000Hzがおすすめ。

AdBlock

  1. DNS
  2. Hosts
  3. Proxy
  4. Extestion
  5. UserScript

DNS

AdGuardなどのDNSを設定することでブロックできる。
スマホはWi-Fiの設定から、DHCPではなく固定staticにすると設定できる。
しかし情報は筒抜けである。私はChromecastでのみ設定している。Tverの広告をブロックできるからである。
AdGuard DNS IP

https://adguard-dns.io/en/blog/adguard-dns-new-addresses.html

94.140.14.14
94.140.15.15

Hosts

/etc/hosts内にブロックしたいIPのリストを書いてブロックする。手書きだと時間がかかるので自動化する。

https://github.com/hectorm/hblock

有効化

sudo ./hblock

無効化

sudo ./hblock -S none -D none

Proxy

通常の接続の間にPrivoxyを通す。

sudo apt install privoxy
sudo vim /etc/privoxy/config

Torを追記すること、listenは上の方にすでに書いてあるので編集すること。

1
2
3
4
5
# listen
listen-address  127.90.90.90:9119

# Tor
forward-socks5t / 127.90.90.90:9150 .

次に以下を使う。Privoxy Blacklist

https://github.com/Andrwe/privoxy-blocklist

1
2
3
4
git clone https://github.com/Andrwe/privoxy-blocklist
cd privoxy-blocklist
sudo ./privoxy-blocklist.sh
sudo vim /etc/privoxy-blocklist.conf

以下のように編集する。

URLS=("https://easylist.to/easylist/easylist.txt" "https://easylist.to/easylist/easyprivacy.txt" )

再度実行

sudo ./privoxy-blocklist.sh

ブラウザのプロキシ設定を127.90.90.90:9119に設定する。HTTPSも同じものにする。SocksではないHTTPプロキシです。
127.90.90.90:9150にするのは、Indra Proxyを使っている場合である。通常は、127.0.0.1:9050や9150などである。

Extension

アドオン、uBlock Originをインストール。
ChromeではマニフェストV3のせいで、uBlockが使えなくなる?らしい...
MV3用のuBlockLiteがあるが、かなり機能が制限されているように見える。

UserScript

アドオン、Violentmonkeyをインストール。

https://github.com/violentmonkey/violentmonkey
https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/

UserScriptは特定のサイトに有効である。例えばYouTubeなど。

https://github.com/TheRealJoelmatic/RemoveAdblockThing

上記のYoutube-Ad-blocker-Reminder-Remover.user.jsをクリックし、右上のRawをクリックしてインストール画面になる。
YouTubeの広告を倍速でスキップするというものになる。他にも似たようなプロジェクトは数多くある。
なぜこのようなことをするのか?以前、YouTubeでuBlockが使えなくなるという問題が発生したためである。現在使えるかは知らない。以上。

uBlockは使わないって話

uBlockはサイトをレスポンスは遅く重くさせます。不適切な動作を引き起こします。hostsファイルやprivoxyがあれば必要ない。
サイト内でオブジェクトを削除したいなら、削除して解決するのではなく根本的な問題をその問題自体を解決する必要があります。

ゲームSteamなど

https://voidlinux.org/news/2014/03/Steam-for-x86_64.html

インストール

sudo xbps-install -S steam glibc-32bit libGL-32bit libdrm-32bit mesa-intel-dri-32bit mesa-vulkan-intel mesa-vulkan-intel-32bit

Cloudflare WARP VPN

https://github.com/ViRb3/wgcf/releases

WGCFというWARPのフロントエンドを使います。

1
2
3
4
5
6
7
$ chmod 0755 ./wgcf_2.2.24_linux_amd64
$ mv ./wgcf_2.2.24_linux_amd64 wgcf
$ wgcf register
ここでYESを選ぶと
wgcf-account.tomlができる。
$ wgcf generate
wgcf-profile.confができる。

Network-Managerも必要ですがwireguard-toolsも必要です。

sudo xbps-install -S wireguard-tools

よく見てください。

ネットワークマネージャを右クリック
接続を編集する...
左下のマークを左クリック
WireGuardを作成
接続名Nクラウドフレア
インターフェース名Icf0
秘密鍵Kwgcf-profile.conf [Interface] PrivateKey
待ち受けポートL自動
Fwmark オフ
MTUMwgcf-profile.conf [Interface] MTU
ピアのルートを追加Rチェックを入れる[*]
公開鍵 追加
公開鍵Pwgcf-profile.conf [Peer] PublicKey
利用可能なIPIwgcf-profile.conf [Peer] AllowdIPs
エンドポイントEwgcf-profile.conf [Peer] Endpoint URL:Port
注意Endpointはポートまで入力してください
事前共有鍵S
永続的なキープアライブKオフ
公開鍵の編集は公開鍵をダブルクリックで編集できます
プロキシーメソッドなし
IPv4メソッドM):無効
IPv6メソッドM):無効
全般おまけ
優先的に自動接続するAチェックを入れる[*]
全ユーザーがこのネットワークに接続可能とするUチェックを入れる[*]
自動的にVPNに接続するVチェックを入れない[ ]
測定接続M自動

DNSの設定が別途必要になります。

1
2
3
4
お使いのインターフェースを選択して
IPv4設定
追加のDNSサーバー(V)1.0.0.2
と設定してください。

フィルタリング:なし:1.0.0.1, 1.1.1.1
フィルタリング:マルウェア:1.0.0.2, 1.1.1.2
フィルタリング:マルウェア+アダルト:1.0.0.3, 1.1.1.3

Windowsアプリ、PlayOnLinuxは時代遅れ、代わりに...

WindowsアプリをLinuxで動作させるために、
PlayOnLinuxを昔使っていたのだが、どうやら現在は時代遅れのようだ。
代わりにボトルというアプリがある、Gnome-Softwareからインストールできる。

作成時にゲーミングを選択すると自動的に、
d3dx9(DirectX)やフォントなどをインストールしてくれる。
設定からProtonなどもインストールできる。デフォルトはSoda。

Firejailで自動的にサンドボックス化する

インストール

$ sudo xbps-install -S firejail

作成、シンボリックリンク

$ sudo firecfg

確認、起動中のアプリ

$ sudo firejail --list

これだけ。

IPアドレス固定化

$ sudo nmtui

上記のコマンドを実行して編集固定化してください。
これはネットワークマネージャーのTUIバージョンのコマンドなのだが
このコマンドの良いところはラズパイなどでGUI環境が無い場合でも
コマンド経由でIPアドレスの固定化ができる所である。しかし、NetworkManagerが必要である。

QRCP

PC <> スマホ間でのファイルの受け渡し(同一ネットワークLAN内)

インストール

$ sudo xbps-install -S qrcp

スマホへ送る Send

$ qrcp send [ファイル名]

スマホで生成されたQRコードを読み取るか、スマホで生成されたURLをブラウザで開く

PCへ送る Receive

$ qrcp receive

スマホで生成されたQRコードを読み取りファイルを選択し送る。同じくURLでも可

Edit Report
Pub: 13 Jan 2025 07:01 UTC
Edit: 10 Apr 2025 08:55 UTC
Views: 261
Auto Theme: Dark