# Pythonのバージョンアップ
Portsから入れたpythonの,小数第一位以上が上がったときは, /usr/ports/UPDATING の20210425の手順を踏む。
1. /etc/make.conf の `DEFAULT_VERSIONS` 内の `python`, `python`*n* を,新バージョンへ書き替え。*n* は現時点で3。例:
```
DEFAULT_VERSIONS+=java=23 perl5=5.40 python=3.11 python3=3.11 ruby=3.3 samba=4.20 ssl=openssl
```
1. pythonをアップグレード。
```
# portupgrade -o lang/python<新> python<旧>
```
1. 新しいpythonに合うよう,いったん削除→再インスコすべきぱっけぇぢを,吊し上げる。
```
$ REINSTALL=$(pkg info -o py<旧>-\* | awk '{printf "%s ", $2}')
$ echo $REINSTALL
```
1. それらのぱっけぇぢを削除→インスコ。
```
# pkg delete -f py<旧>-\*
# for pack in $REINSTALL; do make -C /usr/ports/$pack FLAVOR=py<新> config-recursive; done
# portinstall $REINSTALL
```
1. その他, pythonに依存するぱっけぇぢを再インスコ。
```
$ REBUILD=$(pkg query -g "%n:%dn" '*' | grep py<n> | grep -v py<新> | cut -d: -f1 | sort -u)
$ echo $REBUILD
# portupgrade -f $REBUILD
$ REBUILD2=$(pkg list | grep python-<旧> | xargs pkg which | awk '{print $6}' | sort -u)
$ echo $REBUILD2
# portupgrade -f $REBUILD2
```