mikanos-build icon indicating copy to clipboard operation
mikanos-build copied to clipboard

WSL2でビルド環境構築の際に発生したエラーとその対処法

Open Mozyura opened this issue 2 years ago • 0 comments

githubの扱いにも慣れてなく、issueを立てるのはこれが初めてで、なにかしらの不備があることをあらかじめ謝罪します。

先日Ubuntu20.04 in WSL2でこのリポジトリの通りに環境構築を行った際にエラーが発生したため、その内容と対処法をまとめます。 基本的には

ansible-playbook -K -i ansible_inventory ansible_provision.yml

を実行した際にエラーが発生しました。 最初のエラーは

fatal: [localhost]: FAILED! => {"changed": false, "msg": "No package matching 'llvm-7-dev' is available"}

のような内容のエラーが発生しました。これについてはUbuntu20.04の場合に発生するエラーで、Ubuntu 22.04にアップグレードする、あるいはリポジトリのダウンロード欄にある通り、リポジトリのチェックアウトを行うとよいようです。特にllvm-14-devを使用している場合はバグが報告されているため、リポジトリのチェックアウトを行うことを推奨します。

次に

Could not import python modules: apt, apt_pkg. Please install python3-apt package.

のような内容のエラーが発生しました。 エラーの内容としてはコマンド実行時に起動するpython3内でモジュールが読み込めない旨のものになっています。 調べたところ、apt, apt_pkgモジュールは管理者権限があると読み込みに成功するとのことだったので、 コマンド実行時にsudoをつけて、管理者権限を付与することによってこのエラーを回避できました。

次に

dest '/root/osbook/devenv' must be an existing dir

のような内容のエラーが発生しました。 これは/root/osbook/devenvフォルダーが存在しなければならない旨を示すエラーです。どうやら

sudo whoami

を実行した際にrootと表示される場合、root以下のディレクトリにファイルを展開しようとするようです。 これの対処を行い、最終的に

whoami

で出力されるユーザー名をuser-nameに置き換えて

sudo -u user-name ansible-playbook -K -i ansible_inventory ansible_provision.yml

で実行すると正常に動作させることができました。

混乱を招かないために必要だと考えたこととして、ワーキングフォルダを自分で勝手に設定するのではなく、必ず指示通りにホームディレクトリ以下にリポジトリをダウンロードする必要がある旨を記載したほうが良いと思います。

最後に非常にわかりやすく、初心者にわかりやすい本を書いてくださった著者様に感謝申し上げます。

Mozyura avatar Nov 29 '22 07:11 Mozyura