久しぶりにVyOS Networks Blogを覗いてみたら、7月17日の記事「VyOS 1.4.3 release」を見て2ヶ月程前にVyOS 1.4系に新しいバージョンがリリースされていた事を知る。
VyOS 1.4.3をビルドしてisoファイルの生成を試みたら、ModuleNotFoundError: No module named 'cracklib'のエラーを吐いてビルドが停止した。
以下は暫定処置的な対応であるが、ModuleNotFoundError: No module named 'cracklib'のエラーを吐かせなくしてビルドを完了させた際のメモ。
当方の環境
ホスト機:macOS 15.6.1 / MacBook Pro 2020 / RAM: 16GB / CPU: Intel Core i5 2.0GHz
仮想化環境:Oracle VirtualBox 7.1.12 r169651
ゲスト機 (ビルド環境):Ubuntu Linux 22.04.1 LTS
ビルド対象:VyOS 1.4.3 LTS amd64
VyOS 1.4.3のビルドの大まかな流れ
当ブログの過去の記事の内容と同一の手順で実施した。
https://debslink.hatenadiary.jp/entry/20250216/1739683450 Dockerを使ってVyOS 1.4.1 LTSをビルドした。
実を言うとVyOS 1.4.2のビルドの際も同じログを吐いてビルドが停止した。
この時も当記事の内容と同じ手順で対処し、ビルドを完了させた。
CrackLibとは
パスワードが特定のセキュリティ特性と一致しているかどうかをテストし、ユーザが推測しやすいパスワードを選択する事を防ぐツール。
ユーザが作成したパスワードの文字列に単純なパターンが無いか、辞書内のパスワードと重複していないか等をチェックする際に利用される。
当環境で発生した事象
build-vyos-imageスクリプトを叩いてVyOSをビルドした際、ModuleNotFoundError: No module named 'cracklib'のログを吐いてビルドが停止。
vyos_bld@48b652b38037:/vyos$ sudo ./build-vyos-image generic --architecture amd64 --build-type release --version 1.4.3-lts
Traceback (most recent call last):
File "/vyos/./build-vyos-image", line 97, in <module>
import raw_image
File "/vyos/scripts/image-build/raw_image.py", line 22, in <module>
import vyos.utils.process
File "/vyos/build/vyos-1x/python/vyos/utils/__init__.py", line 17, in <module>
from vyos.utils import auth
File "/vyos/build/vyos-1x/python/vyos/utils/auth.py", line 16, in <module>
import cracklib
ModuleNotFoundError: No module named 'cracklib'
vyos_bld@48b652b38037:/vyos$
cracklibモジュールが無いと言っている。
無いならここでcracklibのインストールを試みたが、error: externally-managed-environmentのログを吐いてpipコマンドが停止した。
vyos_bld@48b652b38037:/vyos$ pip install cracklib
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.11/README.venv for more information.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
vyos_bld@48b652b38037:/vyos$
pip show cracklibコマンドを叩き、cracklibモジュールの情報の確認を試みる。
Package(s) not found:と言ってきた。
cracklibパッケージそのものが無いというのか。
vyos_bld@48b652b38037:/vyos$ pip show cracklib WARNING: Package(s) not found: cracklib vyos_bld@48b652b38037:/vyos$
ここで、cracklibとは何か、Googleで検索。
前述のとおり、パスワードのセキュリティに関するパッケージとの事なので、家庭内の閉じた環境内でビルドしたVyOSを利用するのであれば無効にしても問題無いだろうと判断。/vyos/build/vyos-1x/python/vyos/utils/auth.pyファイル内でcracklibを読み込ませない設定にし、ビルドを再試行した。
vyos_bld@48b652b38037:/vyos$ sudo vi /vyos/build/vyos-1x/python/vyos/utils/auth.py # authutils -- miscelanneous functions for handling passwords and publis keys # # Copyright VyOS maintainers and contributors <maintainers@vyos.io> # # This library is free software; you can redistribute it and/or modify it under the terms of # the GNU Lesser General Public License as published by the Free Software Foundation; # either version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; # without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License along with this library; # if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #import cracklib ◻️コメントアウト import math import re import string from enum import StrEnum from decimal import Decimal from vyos.utils.process import cmd : (省略) :
最後に P: Build completed successfully のログを吐き、VyOS 1.4.3のビルドが成功した。
この後VyOS 1.4.3をVirtualBoxにデプロイし、簡単な動作確認を実施した。
pingによる外部との疎通の確認はできたので、VyOS 1.4.3のビルドとデプロイは成功したと言って良いだろう。
vyos_bld@48b652b38037:/vyos$ sudo ./build-vyos-image generic --architecture amd64 --build-type release --version 1.4.3-lts : (省略) : P: Begin unmounting /dev/pts... P: Binary stage completed P: Begin unmounting filesystems... P: Saving caches... Reading package lists... Done Building dependency tree... Done Reading state information... Done [2025-09-15 02:47:24] lb source P: Source stage disabled, skipping P: Build completed successfully vyos_bld@48b652b38037:/vyos$
以下は、VyOS 1.4.3のリリース案内の記事。
この記事の1週間くらい前に「VyOS Stream 1.5-2025-Q2 is available for download」の記事が掲載されている。
参照サイト
https://vyos.io/ VyOS - Open source router and firewall platform
https://docs.vyos.io/en/sagitta/contributing/build-vyos.html VyOS User Guide
https://blog.vyos.io/vyos-1.4.3-release VyOS 1.4.3 release
https://debslink.hatenadiary.jp/entry/20250216/1739683450 Dockerを使ってVyOS 1.4.1 LTSをビルドした
関連記事
https://debslink.hatenadiary.jp/entry/20220213/1644755282 DebianにFRRを実装しVyOSごっこをやってみた
https://debslink.hatenadiary.jp/entry/20220211/1644579656 VyOSでIPsec VTI構成を組んでみた
https://debslink.hatenadiary.jp/entry/20220131/1643632170 VyOSの中に保存されているファイルを吸い出す
https://debslink.hatenadiary.jp/entry/20220130/1643510508 VyOSでGRE over IPsec VPN構成を組んでみた
https://debslink.hatenadiary.jp/entry/20240406/1712367184 Dockerを使ってVyOS 1.4.0-epa2をビルドした
