🙄

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