Fedoraを開発用PCとしてセットアップする 2024年版
経緯
長らくUbuntuベースのディストリビューションを開発用PCとして使っていたが、新しくPCを新調したついでにディストリビューションを変えることにした。
特にUbuntuベースで不満があるわけではなかったが、開発用ツールがUbuntuのデフォルトのリポジトリだと最新バージョンが降ってくるのがやや遅かったりするので開発中に遭遇するバグを最新版にすることで解消するなどが気軽に行えるFedoraの方が開発用としては良い気がしたため。
また最近Fedoraもversion40となり、安定してリリースを重ねていて普通に日常的な開発環境として使うには問題なさそうだったので。一度dockerベースで最新のFedoraのイメージを試して使用感など確認して問題ないと判断してベアメタルマシンにインストールすることにした。
ちなみにディストリビューションの使用歴としてはelementaryOS -> PopOS! -> Fedoraという感じ
インストールしたツール
日本語入力
fcitx5-mozc
fcitx5-autostart
Fedora40ではibusがデフォルトのInput methodフレームワークとして使われていたが細かいショートカットの割り当てなどの点でfcitxの方が自由度が高いので変更した. 具体的にはLeft Altのみで入力切り替えを行いたかったのだがIbusでは行えなかったため。
dnf install fcitx5-mozc fcitx5-autostart
ターミナル
alacritty
最初はデフォルトで入っているgnome-terminalを使っていたが、なぜかフォントレンダリングが不安定になったのでalacrittyに切り替えた
dnf install alacritty
特に問題なく使えているのと設定をコンフィグファイルベースで行えるのがgnome-terminalに無い特徴なので
メッセージツール
slack
公式からrpmをDLしインストール
sudo rpm -i ~~.rpm
エディタ
VSCode
code:shell
dnf check-update
sudo dnf install code # or code-insiders
ブラウザ
Microsoft Edge
最近Chromeの代わりによく使っている. 何か以前Chromeで不具合があった時に切り分けのためEdge使って再現しなかったのでそのまま使ってる(後で拡張機能が原因だと分かったが、しばらく使った後だったのでそのまま使ってる)
エンジン自体はChromiumで拡張機能も変わらず使えていて特に問題ない。垂直タブなどChromeにない意欲的な機能もあるので面白い。
code:sh
sudo dnf install microsoft-edge-stable
電源設定
これは自分の環境特有の問題だがi9-13900Hを使用していてファン音がうるさかったので tuned でチューニング設定を変えている
code:sh
sudo dnf install tuned
# desktop profileを有効化
sudo tuned-adm profile desktop
# 現在のprofileを確認
sudo tuned-adm active
Current active profile: desktop
# 使用可能なprofile
sudo tuned-adm profile
Available profiles:
- accelerator-performance - Throughput performance based tuning with disabled higher latency STOP states
- aws - Optimize for aws ec2 instances
- balanced - General non-specialized tuned profile
- desktop - Optimize for the desktop use-case
- hpc-compute - Optimize for HPC compute workloads
- intel-sst - Configure for Intel Speed Select Base Frequency
- latency-performance - Optimize for deterministic performance at the cost of increased power consumption
- network-latency - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance
- network-throughput - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks
- optimize-serial-console - Optimize for serial console use.
- powersave - Optimize for low power consumption
- throughput-performance - Broadly applicable tuning that provides excellent performance across a variety of common server workloads
- virtual-guest - Optimize for running inside a virtual guest
- virtual-host - Optimize for running KVM guests
Current active profile: desktop
# 自動起動するよう指定
sudo systemctl enable tuned
# power-profiles-daemonとconflictし自動起動しないのでpower-profiles-daemonを無効化
sudo systemctl disable power-profiles-daemon.service
その他
複数マシン間でマウスとキーボードを共有するツール. LogicoolのFlowのようなものだが、こちらはOSや使うマウス、キーボードの制限はない
公式からrpmをDL
dnf経由でインストール出来る方はバージョンが古いにも関わらず放っておくと自動更新されるので excludepkgs でupdateの対象から外しておく
code:sh
➜ sudo cat /etc/dnf/dnf.conf
# see man dnf.conf for defaults and possible options
gpgcheck=True
installonly_limit=3
clean_requirements_on_remove=True
best=False
skip_if_unavailable=True
excludepkgs=synergy
Windowsとの同期の際うまく同期出来なかったがWindows側のSynergyを再インストールし解決した
感想
普通に使う分にはUbuntuとほぼ変わらない
yumの後継パッケージマネージャーのdnfがよくまとまっているようでリポジトリの更新など速く迷うところも少なく体験がよかった
たまにLinux対応といいつつFedoraなどRedHat系に対応していないソフトウェアもある
開発ツールでいえばほぼほぼ対応してるが一般的な用途のツールはたまにUbuntuのみ公式サポートというのもあるので、普段遣いとしてLinuxを使うという用途であればやはり膨大なソフトウェアが対応しているUbuntuやDebianベースのディストリビューションがよい
開発環境として見た場合やはり最新のバージョンがすぐ降ってくるというのは精神衛生的にいい
Ubuntuベースだと3rd partyのppaなど追加して管理されなくなり更新が出来なくなるなどありがちだったのでしばらく使ってるとapt-get updateで失敗するようになってくるなどで
追記
SynergyがWaylandに対応していないので今X11のGnomeに戻しているがフォントが崩れるようなバグが発生している