aoishiの備忘録

備忘録

ThinkPad X1 Carbon (Gen 5) の Fedora 29 を Fedora 30 ヘアップグレード

Fedora 30 は 2019-04-21 現在まだ Beta リリースですが、2019-05-07 の GA リリースまで我慢できず手元の Fedora 29 環境をアップグレードしてみました。

Releases/30/Schedule - Fedora Project Wiki

アップグレード手順と、アップグレード後に発生した問題をまとめておきます。

アップグレード手順

下記のドキュメントを参考に、インプレースでアップグレードしました。

DNF system upgrade - Fedora Project Wiki

アップグレード時のコマンドで指定する --releasever=module_platform_id=30 としました。

$ sudo dnf upgrade --refresh
$ reboot

$ sudo dnf install dnf-plugin-system-upgrade

$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-30-primary
$ sudo dnf system-upgrade download --refresh --releasever=30 --setopt='module_platform_id=platform:f30'
$ sudo dnf system-upgrade reboot

アップグレード後に発生した問題

半角/全角キーが効かず日本語入力ができない

原因は ibus-mozc の設定ファイル /usr/share/ibus/component/mozc.xml が上書きされてしまったためです。

対応として、component > engine > layout を default から jp に書き換えて保存し、再ログインすることで改善しました。

$ cat /usr/share/ibus/component/mozc.xml
<component>
  <version>0.0.0.0</version>
  <name>com.google.IBus.Mozc</name>
  <license>New BSD</license>
  <exec>/usr/libexec/ibus-engine-mozc --ibus</exec>
  <textdomain>ibus-mozc</textdomain>
  <author>Google Inc.</author>
  <homepage>https://github.com/google/mozc</homepage>
  <description>Mozc Component</description>
<engines>
<engine>
  <description>Mozc (Japanese Input Method)</description>
  <language>ja</language>
  <symbol>&#x3042;</symbol>
  <rank>80</rank>
  <icon_prop_key>InputMode</icon_prop_key>
  <icon>/usr/share/ibus-mozc/product_icon.png</icon>
  <setup>/usr/libexec/mozc/mozc_tool --mode=config_dialog</setup>
  <layout>jp</layout>
  <name>mozc-jp</name>
  <longname>Mozc</longname>
</engine>
</engines>
</component>

Gnomeの設定画面でトラックパッドの設定ができない、またトラックパッドの機能が貧弱

設定 > デバイス > マウスとタッチパッドタッチパッドの設定画面が表示されず、トラックパッドの設定変更ができません。 また、トラックパッドの機能も貧弱で、2 本指スクロールなどもできません。

下記の記事で GRUB の設定で psmouse.proto=imps が含まれると原始的なタッチパッドとして動作してしまう報告がありました。

qiita.com

自分の環境の事象と類似と思われたので、下記のように設定を変更し、 grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfgGRUB 設定ファイルを更新後に再起動したところ事象が改善しました。

$ diff /etc/default/grub.20190420 /etc/default/grub
6c6
< GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora/root rd.lvm.lv=fedora/swap rhgb quiet i8042.reset i8042.nomux psmouse.proto=imps"
---
> GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora/root rd.lvm.lv=fedora/swap rhgb quiet i8042.reset i8042.nomux psmouse.synaptics_intertouch=1"

Ansible で dnf モジュールのタスクがエラーになる

自分の環境では Ansible をインストールして localhost に対して playbook を実行することで環境構築を自動化していますが、Fedora 30 にアップグレード後に Ansible を実行したところ dnf モジュールを使用したタスクでエラーが発生するようになりました。

下記が発生したエラーです。

fatal: [localhost]: FAILED! => {"changed": false, "msg": "`python2-dnf` is not installed, but it is requiredfor the Ansible dnf module.", "results": []}

下記が Ansible のバージョ です。

$ ansible-playbook --version
ansible-playbook 2.7.10
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/*****/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.7/site-packages/ansible
  executable location = /usr/bin/ansible-playbook
  python version = 3.7.3 (default, Mar 27 2019, 13:36:35) [GCC 9.0.1 20190227 (Red Hat 9.0.1-0.8)]

python2-dnf がインストールされていないというエラーでしたので、Fedora 30 での該当パッケージの有無・インストール状況を確認してみましたが、存在するパッケージは python3-dnf のみであり、また既にインストール済みでした。

$ $ dnf list python*-dnf
...
インストール済みパッケージ
python3-dnf.noarch              4.2.2-2.fc30                  @fedora

原因ですが、下記の issue に記載されているように、Ansible がターゲットで処理を実行する際にデフォルトで Python2 を使用する動作であることから python2-dnf パッケージを必要としていたようです。

github.com

対応として、ターゲットで Ansible が Python3 で実行されるよう、インベントリファイルなどで ansible_python_interpreter=/usr/bin/python3 を対象ホスト(今回の場合は localhost)に設定することで解決しました。