Open oratake opened 3 years ago
https://gist.github.com/kayakzt/0198e7b70d58bdc4cf3775265e073739
https://wiki.archlinux.jp/index.php/Windows_と_Arch_のデュアルブート
基本、既存のWindowsにLinuxを後載せするが、後述のEFIパーティションの容量足りないかも問題があるので、windowsが入れ治せるならEFIパーティションは多めに確保したい。
多めとはいえ500MBあれば足りるはず
Win向けとしては高速スタートアップをkillしておくぐらいで良さそう
Winから「ディスクの管理」を使って領域をぶんどる。C:を縮小してLinuxを入れるが、
縮小したあと、空いている場所に適当なRAWのパーティションを切っとくとCUIでの設定が楽になりそう
xfsでフォーマットする場合、chrootした先で pacman -S xfsprogs
が必要。
そうしないとmkinitcpioでチェックができない (fsck) と怒られる
ないので将来的に足りないタイミングが心配されるカーネル2つとか(linuxとlinux-ltsみたいなこと)やらなきゃ耐えられるはず。
ダメそうならEFI乗ってるパーティションを切り直す必要あり
https://wiki.archlinux.jp/index.php/Dm-crypt/システム全体の暗号化#LVM_on_LUKS
LVM作成前に物理パーティション自体にLUKS暗号化を行う
パーティションから暗号化するので、物理パーティションをまたぐようなものは作成不可
LVM入れる。上記の暗号化手順のままいけそう
各種操作が必要なときは古いが以下参考
https://qiita.com/TsutomuNakamura/items/93c6333c8dd32aeb197a
swapは後で縮めてもいいかと思ったので脳死4gb
タイプが
ef00 EFI System
でファイルシステムがFAT32
のパーティション
これを /boot
にしていく
CPUに合わせてマイクロコードのアップデートを有効に、とのことでとりあえずやっとく
# pacman -S intel-ucode
Windowsの設定を変更する必要あるかも。JSTがそのまま端末の時間になっている説があるので、
Linux側の標準である内部ではUTCを使い表示はJST、という設定に寄せていく必要がある
通常のインストール手順で https://wiki.archlinux.jp/index.php/インストールガイド
pacstrap /mnt base base-devel linux linux-firmware vi vim neovim zsh tmux netctl dialog wpa_supplicant dhcpcd lvm2 iwd
(pacstrap前にミラーをjaistに設定してもよかったのかもしれない。しくじったか)
↑pacstrapのときはchrootとかもあるので大丈夫かなと
https://qiita.com/j8takagi/items/235e4ae484e8c587ca92#ミラーリストの設定
23.07.07 pacstrapのとき追加したいもの
pacstrap /mnt iwd
# iwctl station <device_name> scan
# iwctl station <device_name> get-networks
iwctl (iwd) 使用の知見
2020年半ばからCUIでのwifi標準が iwctl になっていた模様
pacstrap時に必要なものが、
netctl dialog wpa_supplicant dhcpcd
↓
iwd dhcpcd
になったとおもわれる
もっかいインストールした時検証してみる
初回設定手順(rootで)
iwdをstart
# systemctl start iwd
dhcpcdもstart
(wlan0
のとこは使うデバイス名で。ip link
とかで出てきたやつ)
# systemctl start dhcpcd@wlan0.service
wifi設定わりと丁寧なサイトさん
https://aznote.jakou.com/archlinux/wireless.html
ロケールはインストールが大体終わるぐらいまではenglishにしてたほうが諸々事故がすくない
LANG=en_US.UTF-8
CUIでのkeymapは一応設定しておく。
/etc/vconsole.conf
KEYMAP=jp106
https://wiki.archlinux.jp/index.php/コンソールでのキーボード設定
後で確認:
lvm2
パッケージが入ってるとエラーでない = pacman -S lvm2
してから実行でエラーなしinitramfsとは
https://qiita.com/akachochin/items/d38b538fcabf9ff80531
rEFInd してみる
# pacman -S refind-efi
boot領域が狭すぎてfallbackがインストールできてなかったので、作らないことにしてみた
/etc/mkinitcpio.d/linux.preset
(mkのとき -p linux
してるからこのファイル名) で一旦fallbackを生成しないようにしてみている
https://wiki.archlinux.jp/index.php/Initramfs_の最小化
# Unmount all partitions
umount -R /mnt
swapoff -av
# Reboot into the new system, don't forget to remove the cd/usb
reboot
bootloaderしくじって再度入る手順
# キーボードだけは直しとく
$ loadkeys jp106
# 以下 https://wiki.archlinux.jp/index.php/Dm-crypt/システム全体の暗号化#LVM_on_LUKS
$ cryptsetup open /dev/sdaX cryptolvm # sdaXは暗号化されてるパーティション
# root, home, swap, boot それぞれmountする
ここの話 https://gist.github.com/softmoth/1388e99bc718fd7414ac0c6787d711cd
# Configure mkinitcpio with modules needed for the initrd image
vi /etc/mkinitcpio.conf
# Add 'ext4 i915' to MODULES; i915 avoids hang when Xorg run as root
やったぜ。
以下ブートローダから起動後の調整
ホームディレクトリ作成しつつ、wheelグループにいれてユーザ作成
# useradd -m -G wheel -s /bin/bash hogepiyo_user
sudoerに入れる
# EDITOR=vim visudo
↓ここのコメントアウトを外す (#)
%wheel ALL=(ALL) ALL
autocd いれる extglob いれる
日本むけmirrorlist調整
# pacman -S reflector
注: 以下実行でmirrorlistが上書きされるので、念の為にmvして退避しておくとよさそう
# reflector --country Japan --latest 5 --sort rate --save /etc/pacman.d/mirrorlist
# pacman -Syy # 同期をとる
https://wiki.archlinux.jp/index.php/Reflector
懸念:
Japanで絞ったけど、もしかすると落ちてくるバージョン古いのでは。多少遅くても勢いのいいmirrorから落としたほうがよいかも
追記: こうしてみた。もとのmirrorlistの退避もお忘れなく
$ sudo reflector --sort rate --country jp,us --latest 10 --save /etc/pacman.d/mirrorlist
# git clone https://aur.archlinux.org/yay.git
# cd yay
# makepkg -si
あと終わったらyayのインストールディレクトリを消しておく
参考: http://malkalech.com/i3_window_manager
i3wm+lightDM で仕掛ける
# pacman -S i3 lightdm xorg xorg-xinit dmenu ttf-dejavu otf-ipafont konsole
一旦再起動(しないとエラーでi3wmが起動しない)
↑lightDMのせいでXが落ちているかもれないので、一旦使わんでみる あとawesomeしてみる
とりあえずi3の起動のみ確認
~/.xinitrc
exec i3
$ startx
で起動だけしてみる
$ yay -S google-chrome
PulseAudioととのえる
# pacman -S pulseaudio-alsa pavucontrol volumeicon
pavucontrolを叩くと音量設定がでる
これだとまだ音量上がるときにポップアップみたいなのが出ないので volumeicon を使う
i3で起動設定
volumeicon入れるときに libnotify みたいなのが入っていたので、トースト通知関係はこのあたりを使用しているのかも
GUIのツールで調整できるようにする
自動で拡張画面をデザインしてくれるわけではないが、
わりとかんたんに設定可能
# pacman -S arandr
# ↓dotfilesの.zsh_local参照
$ nocaps
$ sudo systemctl start dhcpcd@デバイス名.service
# PulseAudioが起動していない場合
$ pulseaudio --start
アプリごとに設定が必要な場合、以下手順 https://qiita.com/gyu-don/items/d61b03e0222a7f1ce9f7#アプリケーション固有の設定
$ yay -S visual-studio-code-insiders-bin phpstrom phpstorm-jre
vscodeについては気分でinsidersに
phpstormは仕事上よく使うのでいれる
https://qiita.com/oratake/items/f2b118f881085b04a644#日本語im Mozc Only Show Current Language Off
Global Config > Hotkey > Show Advanced Options
Active = Henkan
Inactive = Muhenkan
jp106 (xorg no yatu)
Input Method
Keyboard - Japanese
Mozc
Mozc is japanese keyboard is eng
fcitx5
# pacman -S fcitx5-im
.pam_environment (archのwikiに記載あり)
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx
XMODIFIERS DEFAULT=@im=fcitx
neovim ヤンクをクリップボード xclipインストール、設定追加 https://qiita.com/gotchane/items/0e7e6e0d5c7fa9f55c1a
neovimインストール後のダイアログ これもヤンクのためにインストールしとくとよさそう
Optional dependencies for neovim
python-neovim: for Python 3 plugin support (see :help python)
xclip: for clipboard support on X11 (or xsel) (see :help clipboard) [installed]
xsel: for clipboard support on X11 (or xclip) (see :help clipboard) [installed]
wl-clipboard: for clipboard support on wayland (see :help clipboard)
このみで
# pacman -S konsole
$ yay -S ttf-cica
CicaいれてStarshipいれる (ttf-cica-git があってそれやってみたらdockerいれてそっちでビルド始めだした。しかもコケたのでもうやらない)
公式のワンライナーからいれる
zshだと .zprofile とかに所定のものをいれてlinuxbrew向けのpathを通す
gitは入れとく
# pacman -S git
sshではなくhttpsでリモートとやり取りするようにしてるので、トークンを覚えさせておきたい
# pacman -S gnome-keyring
スクショ Shutter
yay -S shutter
i3 のconfigで起動設定いれてある
ここ参考にととのえたい https://qiita.com/xorphitus/items/d543931ecd2c441e462f
適宜書かれている通りPath通したりする
$ anyenv install phpenv
$ phpenv install 8.0.0
と思ったらエラー
-----------------
| BUILD ERROR |
-----------------
Here are the last 10 lines from the log:
-----------------------------------------
configure: error: Package requirements (oniguruma) were not met:
Package 'oniguruma', required by 'virtual:world', not found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables ONIG_CFLAGS
and ONIG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
-----------------------------------------
oniguruma
は mbstring
とかみたいなマルチバイトの正規表現用らしい
参考: https://www.php.net/manual/ja/mbstring.installation.php
マルチバイト文字列 oniguruma ライブラリは PHP本体にバンドルされなくなりました。代わりに、libonig がシステムで利用可能になっている必要があります。mbregex コンポーネントを無効にするために、--disable-mbregex オプションが代わりに利用できます。
参考: https://www.php.net/manual/ja/migration74.other-changes.php
8入れてるから起きてる感。別途ライブラリ入れておく
# pacman -S oniguruma
またinstallするとエラー
-----------------
| BUILD ERROR |
-----------------
Here are the last 10 lines from the log:
-----------------------------------------
configure: error: Cannot find libtidy
-----------------------------------------
tidyをいれる
# pacman -S tidy
-----------------
| BUILD ERROR |
-----------------
Here are the last 10 lines from the log:
-----------------------------------------
Package 'libzip', required by 'virtual:world', not found
Package 'libzip', required by 'virtual:world', not found
Package 'libzip', required by 'virtual:world', not found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables LIBZIP_CFLAGS
and LIBZIP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
-----------------------------------------
でlibzip入れたらいけた
$ yay -S phpstorm phpstorm-jre
javaがないと起動しない。パッチ版のjreがあったので、とりあえずこれを入れておいている
Biscuitのkeyring使えてない問題
AUR のサイト側表記を確認するとdependencyにgtk3があるっぽい とりあえず、GUIでkeyring管理できるツール入れてみることに
# pacman -S seahorse
見られないっぽいのでAURではなくAppImage版にしてみる
公式ページではダウンロードをクリックしてもうんともすんとも行かないという体たらくなので、
githubから直で落とす
https://github.com/agata/dl.biscuit/releases
実行権限つけてAppImage叩いたらエラー
❯ ./Biscuit-1.2.13.AppImage
dlopen(): error loading libfuse.so.2
AppImages require FUSE to run.
You might still be able to extract the contents of this AppImage if you run it with the --appimage-extract option.
See https://github.com/AppImage/AppImageKit/wiki/FUSE
for more information
githubのリンクにあるように、AppImageはFUSE(Filesystem in Userspace) が必要とのことで入れておく
# pacman -S fuse
mate-utils の mate-screenshot を使う
option はhelp参照
下のでクリップボードがするっと使えたのがmateのやつだったため
https://wiki.archlinux.jp/index.php/スクリーンショットの取得#.E3.82.B9.E3.82.AF.E3.83.AA.E3.83.BC.E3.83.B3.E3.82.B7.E3.83.A7.E3.83.83.E3.83.88.E3.83.A6.E3.83.BC.E3.83.86.E3.82.A3.E3.83.AA.E3.83.86.E3.82.A3.E3.81.8C.E5.90.AB.E3.81.BE.E3.82.8C.E3.81.A6.E3.81.84.E3.82.8B.E3.83.91.E3.83.83.E3.82.B1.E3.83.BC.E3.82.B8
gnome-screenshotが安定 i3-scrotは線が写り込んでうるさいのでリストラ
caja ttps://wiki.archlinux.jp/index.php/アプリケーション一覧/ユーティリティ
Postman
$ yay -S postman-bin
Albert
ランチャはいまのとここれ
MacでいうAlfred
# pacman -S albert
Thunderbird
GNOME標準?のGearyもつかってみたが、メールについては結局これになった。
thunderbird 自体は pacman で入るが、日本語パッケージがAURなので、yayでまとめて入れちゃう
$ yay -S thunderbird thunderbird-i18n-ja
Dunst
Biscuitで通知くると固まる問題。Dunstがdsubつかってタイムアウトして固まってたらしく、DISPLAY指定して解決。ということはマルチディスプレイだと起きる問題か https://www.google.com/search?sxsrf=ALeKk03NTGWfueJ9Li9FgEpeCl1ET_CSxQ%3A1610011883788&ei=69T2X_nTL4r2wAP0t73wAQ&q=dunst+Failed+to+activate+service+%27org.freedesktop.Notifications%27%3A+timed+out&oq=dunst+Failed+to+activate+service+%27org.freedesktop.Notifications%27%3A+timed+out&gs_lcp=CgZwc3ktYWIQAzoCCAA6BAgAEEM6BQgAEMsBUKYFWLohYPMnaABwAXgAgAGgAYgB7AKSAQMxLjKYAQCgAQGgAQKqAQdnd3Mtd2l6wAEB&sclient=psy-ab&ved=0ahUKEwi59arTwYnuAhUKO3AKHfRbDx4Q4dUDCA0&uact=5
❯ yay -S strongswan xl2tpd
[sudo] password for takenaka:
resolving dependencies...
looking for conflicting packages...
Packages (3) ppp-2.4.7-7 strongswan-5.9.1-1 xl2tpd-1.3.16-1
Total Download Size: 1.56 MiB
Total Installed Size: 5.00 MiB
ike-scanも こちらはyayで
❯ sd ike-scan URLここ
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
あいぴー Main Mode Handshake returned HDR=(CKY-R=もじれつ) SA=(Enc=3DES Hash=SHA1 Auth=PSK Group=2:modp1024 LifeType=Seconds LifeDuration(4)=0x00007080)
Ending ike-scan 1.9: 1 hosts scanned in 0.079 seconds (12.64 hosts/sec). 1 returned handshake; 0 returned notify
3DES SHA1 modp1024
あと yay -S networkmanager-l2tp
普通につながった。むかつく
PPPも初期設定のまま
とりあえずプログラム向けに Cica はいつも入れてるので、それ以外
特にemoji関係の設定
ChromeとかでみてるときにEmojiが白黒になる。フォントの適用順位を見ると以下になっていた
適用font-family: arial,sans-serif
Rendered Fonts: DejaVu Sans, IPAGothic, Cica
これおそらくCicaの絵文字がレンダリングされてるのかなとおもったので、Cica(おそらく等幅フォント枠でリストアップ)より高い順位でEmoji系のフォントいれるといいかも
Intel Graphics (内蔵グラフィクス) ドライバ i915 をつかってるっぽい?
https://wiki.archlinux.jp/index.php/Intel_Graphics#Skylake_.E3.82.B5.E3.83.9D.E3.83.BC.E3.83.88
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "DRI" "false"
Option "RearFree" "true"
EndSection
Powerボタン押下で即シャットダウンがかかるため、おそらくXorgが死んでいるっぽい? WindowManagerで設定したkillキーバインドも効かないので、キー入力を受け付けていないとか、AwesomeWMが死んだとかのような気がする。 すこし前はi3-wmを使っていたが、こっちも似たような落ち方していたので、おそらくもうちょい低レイヤな話な気がする
バグとりのためにjournalctlを保存するようにしてみる https://www.suse.com/ja-jp/support/jp/kb/tids/00100070/
rootlessいれる
いれた
[INFO] To control docker.service, run: `systemctl --user (start|stop|restart) docker.service`
[INFO] To run docker.service on system startup, run: `sudo loginctl enable-linger <USER_NAME>`
systemctl enable じゃなくて loginctl enable-lingerなんだなっていう。 これすると、user権限でもenableできるよ、という話らしい
再度install (2022/05頃〜 Manjaro)
入れたもの (細かいdependencyは省略)
sudo pacman -S tmux neovim konsole git gnome-keyring exa samba
yay -S ttf-cica postman-bin albert visual-studio-code-bin
fcitx5を使うと良さそう。 fcitx (無印) はarchwikiをみると使わないほうがよさそうにみえる
sudo pacman -S fcitx5 fcitx5-mozc fcitx5-configtool fcitx5-qt fcitx5-gtk
問題がある場合は診断ツール fcitx5-diagnose
をつかう
参考: https://wiki.archlinux.jp/index.php/Fcitx5
適宜抜粋
# Fcitx Configure UI:
3. Config GUI for kde:
**`kcmshell5` not found.**
# Frontends setup:
## Qt:
3. Qt IM module files:
**Cannot find fcitx5 input method module for Qt4.**
## Gtk:
3. Gtk IM module cache:
3. gtk 4:
**Cannot find immodules cache for gtk 4**
**Cannot find fcitx5 im module for gtk 4 in cache.**
**Warning: the output of fcitx5-diagnose contains sensitive information, including the dist
ribution name, kernel version, name of currently running programs, etc.**
**Though such information can be helpful to developers for diagnostic purpose, please doubl
e check and remove as necessary before posting it online publicly.**
Konsoleでmozcつかえなかったのでいろいろいじってみた LC_TYPEとかLANGは無関係っぽい。en_GBでもいける
xorgキーボード設定 localectlを使って変更(conf直でいじっちゃだめ)
$ localectl set-x11-keymap jp ctrl:nocaps
参考: https://wiki.archlinux.jp/index.php/Xorg_でのキーボード設定
トラックパッドはlibinputかsynapticsで制御 synapticsは古いっぽいのでlibinputつかう前提で
/etc/X11/xorg.conf.d/30-touchpad.conf
Section "InputClass"
Identifier "touchpad"
Driver "libinput"
MatchIsTouchpad "on"
Option "Tapping" "off"
Option "NaturalScrolling" "true"
Option "ClickMethod" "clickfinger"
EndSection
もともとALSAのみだったっぽい PulseAudioいれてpavucontrolいれた bluetoothイヤホンがつかえなかったのでwikiのbluetoothの項目にしたがってA2DPに対応させた
sudo pacman -S docker yay -S docker-rootless-extras
dockerだけ入れたあと docker-rootless-extrasを入れるでよいかも。confあたりもやってくれてそう
=== Post installation message from docker-rootless ===
This is based on https://docs.docker.com/engine/security/rootless/
To Run the Docker daemon as a non-root user (Rootless mode) for ArchLinux, you need to do the following things:
1. Configure subuid and subgid
Create '/etc/subuid' and '/etc/subgid' with the following:
testuser:231072:65536
# replace 'testuser' with your username.
2. Enable socket-activation for the user service:
systemctl --user enable --now docker.socket
3. Finally set docker socket environment variable:
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock
You can also add it to '~/.bashrc' or somewhere alike.
=========
Optional dependencies for docker-rootless-extras
fuse-overlayfs: overlayfs support [installed]
slirp4netns: faster network stack
docker起動でエラー
Jun 01 00:31:20 PC名 systemd[428]: docker.service: Main process exited, code=exited, status=1/FAILURE
Jun 01 00:31:20 PC名 systemd[428]: docker.service: Failed with result 'exit-code'.
Jun 01 00:31:22 PC名 systemd[428]: docker.service: Scheduled restart job, restart counter is at 3.
Jun 01 00:31:22 PC名 systemd[428]: Stopped Docker Application Container Engine (Rootless).
Jun 01 00:31:22 PC名 systemd[428]: docker.service: Start request repeated too quickly.
Jun 01 00:31:22 PC名 systemd[428]: docker.service: Failed with result 'exit-code'.
Jun 01 00:31:22 PC名 systemd[428]: Failed to start Docker Application Container Engine (Rootless).
journalctl -xe とかしたら Either slirp4netns (>= v0.4.0) or vpnkit needs to be installed
とか言ってたのでslirp4netnsいれてみる
→bingoです。これだった
1024以下ポートを使用する設定
dockerのシステム設定関係は /usr/lib/sysctl.d/99-docker-rootless.conf
が生成されているので、そこに設定追加
Konsole入れたときKDEとQt関係が入った気がする。Manjaroはそもそもなにが入ってるかよくわかってない DM自体はlightdmっぽい。bmenuのsettingから確認済
tmux tpmを別途cloneする必要あり
~/.profile にデフォルトブラウザ設定あり
参考: https://qiita.com/phoepsilonix/items/b287aacf2de0ee89681b
❯ sudo pacman -Rs pulseaudio
checking dependencies...
error: failed to prepare transaction (could not satisfy dependencies)
:: removing pulseaudio breaks dependency 'pulseaudio' required by pulseaudio-alsa
:: removing pulseaudio breaks dependency 'pulseaudio' required by pulseaudio-ctl
:: removing pulseaudio breaks dependency 'pulseaudio=16.1-6' required by pulseaudio-equalizer
❯ sudo pacman -Rs pulseaudio pulseaudio-alsa pulseaudio-ctl pulseaudio-equalizer
checking dependencies...
:: pavucontrol optionally requires pulseaudio: Audio backend
:: shutter optionally requires bc: 3D Rotate and 3D Reflection plugins support
Packages (9) alsa-plugins-1:1.2.7.1-2 bc-1.07.1-4 python-pyqt5-5.15.9-2 python-pyqt5-sip-12.12.2-1
webrtc-audio-processing-0.3.1-3 pulseaudio-16.1-6 pulseaudio-alsa-1:1.2.7.1-2 pulseaudio-ctl-1.70-1
pulseaudio-equalizer-16.1-6
Total Removed Size: 35.97 MiB
pulseaudioの類だけ削除した
試しにpulseaudioじゃなくpipewireを入れてみる https://wiki.archlinux.jp/index.php/PipeWire
$ sudo pacman -S pipewire pipewire-docs wireplumber pipewire-alsa pipewire-pulse
# pulseをいれるとこはセッションマネージャのデフォが非推奨のpipewire media sessionの方になってるのでwireplumberの方にする
.serviceはuser権限で実行する
$ systemctl --user start pipewire
$ systemctl --user enable pipewire
度々インストールの必要があるのでこの際作っておく
やること
インストールのまとめについては、わりとwikiとここの記事で大体済みそう
http://malkalech.com/