- 1. 概要
- 2. 対策
1. 概要
前節で、python を 2.7 から 3.6 へと移行したのですが、2018年10月9日現在、まだ python2.7 に依存しているモジュールがたくさんあるようで、簡単には捨てられないのです。
するとどうなっちゃうかというと
> pkg version -vl "<"
・・・ 以下、関連部分のみを抜き書き
py27-pytz-2018.5,1 < needs updating (index has 2018.7,1)
py36-pytz-2018.5,1 < needs updating (index has 2018.7,1)
というように更新が発生した際に
> portupgrade -Rr py36-pytz
はすんなり成功するのですが
> portupgrade -Rr py27-pytz
は、エラーになります。
> portupgrade -Rr py27-pytz
[Reading data from pkg(8) ... - 677 packages found - done]
[Gathering depends for devel/py-pytz ................ done]
[Gathering depends for devel/py-babel ... done]
[Exclude up-to-date packages .......... done]
** Detected a package name change: py27-pytz (devel/py-pytz) -> 'py36-pytz' (devel/py-pytz)
---> Upgrading 'py27-pytz-2018.5,1' to 'py36-pytz-2018.7,1' (devel/py-pytz)
---> Building '/usr/ports/devel/py-pytz'
===> Cleaning for py36-pytz-2018.7,1
===> Cleaning for py27-pytz-2018.7,1
===> License MIT accepted by the user
===> py36-pytz-2018.7,1 depends on file: /usr/local/sbin/pkg - found
・・・ 略 ・・・
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:
py27-pytz-2018.5,1
Number of packages to be removed: 1
The operation will free 1 MiB.
[1/1] Deinstalling py27-pytz-2018.5,1...
[1/1] Deleting files for py27-pytz-2018.5,1: 100%
[Reading data from pkg(8) ... - 676 packages found - done]
---> Installing the new version via the port
===> Installing for py36-pytz-2018.7,1
===> Registering installation for py36-pytz-2018.7,1 as automatic
*** Error code 70
Stop.
make[1]: stopped in /usr/ports/devel/py-pytz
*** Error code 1
Stop.
make: stopped in /usr/ports/devel/py-pytz
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20181030-3883-1rka30q env UPGRADE_TOOL=portupgrade UPGRADE_PORT=py27-pytz-2018.5,1 UPGRADE_PORT_VER=2018.5,1 make -DINSTALLS_DEPENDS reinstall
---> Restoring the old version
Installing py27-pytz-2018.5,1...
pkg: Missing dependency 'py27-setuptools'
Failed to install the following 1 package(s): /var/tmp/portupgradeABTh5IVH/py27-pytz-2018.5,1.txz
** Command failed [exit code 70]: /usr/local/sbin/pkg add /var/tmp/portupgradeABTh5IVH/py27-pytz-2018.5,1.txz
---> Skipping 'devel/py-pytz'
** Listing the failed packages (-:ignored / *:skipped / !:failed)
* devel/py-pytz (py27-pytz-2018.5,1)
2. 対策
python27 のモジュールは、こういうことがある都度に消していきましょう。
削除するには少しばかりコツがあります。
いったん
/etc/make.conf
の
DEFAULT_VERSIONS+=python=3.6 pythonr3=3.6
の部分をコメントアウトして
をコメントアウトして
py27-pytz の場合は、
> whereis py-pytz
py-pytz: /usr/ports/devel/py-pytz
> cd /usr/ports/devel/py-pytz
make deinstall clean
その上で
/etc/make.conf
のコメントアウトした部分を元に戻します。
|