🙄
FreeBSD-ports/ py-wheelで起きている問題・・・
py-wheel044 が何故か入る。
===> py311-wheel-0.45.1 conflicts with installed package(s):
py311-wheel044-0.44.0
They install files into the same place.
You may want to stop build with Ctrl + C.
Installing py311-wheel-0.45.1...
pkg-static: py311-wheel-0.45.1 conflicts with py311-wheel044-0.44.0 (installs files into the same place). Problematic file: /usr/local/bin/wheel-3.11
*** Error code 1
対処策
- portmaster -a* で作業していると解決できない。
* とりあえず 削除してみる。
# pkg remove py311-wheel044
Updating database digests format: 100%
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):
Installed packages to be REMOVED:
py311-wheel044: 0.44.0
Number of packages to be removed: 1
Proceed with deinstalling packages? [y/N]: y
[1/1] Deinstalling py311-wheel044-0.44.0...
[1/1] Deleting files for py311-wheel044-0.44.0: 100%
- devel/py-wheel だけを入れ直す。
# portmaster -Gdty devel/py-wheel
===>>> Port directory: /usr/ports/devel/py-wheel
===>>> Gathering distinfo list for installed ports
===>>> Launching 'make checksum' for devel/py-wheel in background
===>>> Gathering dependency list for devel/py-wheel from ports
===>>> Initial dependency check complete for devel/py-wheel
===>>> Starting build for devel/py-wheel <<<===
===>>> All dependencies are up to date
===> Cleaning for py311-wheel-0.45.1
===> Cleaning for py312-wheel-0.45.1
===> Cleaning for py310-wheel-0.45.1
===> Cleaning for py39-wheel-0.45.1
===> License MIT accepted by the user
===> py311-wheel-0.45.1 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by py311-wheel-0.45.1 for building
===> Extracting for py311-wheel-0.45.1
=> SHA256 Checksum OK for wheel-0.45.1.tar.gz.
===> Patching for py311-wheel-0.45.1
===> py311-wheel-0.45.1 depends on package: py311-flit-core>=3.8 - found
===> py311-wheel-0.45.1 depends on file: /usr/local/bin/python3.11 - found
===> py311-wheel-0.45.1 depends on package: py311-build>=0 - found
===> py311-wheel-0.45.1 depends on package: py311-installer>=0 - found
===> Configuring for py311-wheel-0.45.1
===> Building for py311-wheel-0.45.1
* Getting build dependencies for wheel...
* Building wheel...
Successfully built wheel-0.45.1-py3-none-any.whl
===>>> Building the port required 0 seconds
===> Staging for py311-wheel-0.45.1
===> Generating temporary packing list
===> Creating unique files: Move MAN files needing SUFFIX
===> Creating unique files: Move files needing SUFFIX
Move: bin/wheel --> bin/wheel-3.11
Link: @bin/wheel --> bin/wheel-3.11
====> Compressing man pages (compress-man)
===> Installing for py311-wheel-0.45.1
===> Checking if py311-wheel is already installed
===> Registering installation for py311-wheel-0.45.1
[mail] Installing py311-wheel-0.45.1...
===>>> Deleting stale distfile: wheel-0.44.0.tar.gz
===>>> Installation of devel/py-wheel (py311-wheel-0.45.1) complete
python における wheelの役割・FreeBSD-portsにおける命名問題
- サードパーティ製ライブラリを取りまとめる PyPIから pip を使ってモジュールをローカル環境に持ってくることが出来ますが、Wheel がその役割を担います。重要なモジュールですが、バージョンが0.xxというところもあり、その番号付けから開発グループが認めるように決して安定はしてません。
- FreeBSDの問題として、何故か 0.43->0.45 が同じ名前、バージョン0.44のみ違った名前で ports が 作られました。
- 後方互換性が無い変更があったので0.44をどうしても残しておきたかったのか?分かりませんが、0.45.1 が現時点の最新版です。
- pythonは、バージョン問題を仮想環境で回避したりしていますが、FreeBSD-portsにはそこまでの柔軟性がありません。
Discussion