Опять настало время обновлять FreeBSD, обновил с 11.1 до 11.3
Обновил порты и принялся читать файл UPDATING
# less /usr/ports/UPDATING
В котором узнал, что Perl подняли до версии 5.30, Python теперь по умолчанию принят версии 3,7
Проверим установленную версию Python:
# python3 -V Python 3.6.7
20191216:
AFFECTS: users of python
AUTHOR: antoine@FreeBSD.org
Default version of python3 and python was switched to 3.7.
For ports users wanting to keep version 3.6 as default,
add DEFAULT_VERSIONS+= python=3.6 python3=3.6 to make.conf
This may ease the upgrade for users of pre-build packages:
# sh
# for i in $(pkg query -g %n ‘py36-*’); do pkg set -yn ${i}:py37-${i#py36-}; done
# pkg upgrade
For portmaster users:
# portmaster -o lang/python37 python36
# REINSTALL=»$(pkg info -o py36-\* | awk ‘{printf «%s «, $2}’)»
# pkg delete -f py36-\*
# portmaster $REINSTALL
# REBUILD=$(pkg query -g «%n:%dn» ‘*’ | grep py3 | grep -v py37 | cut -d : -f 1 | sort -u)
# portmaster $REBUILD
Проверяем нет ли у нас записи в make.conf указывающей на DEFAULT_VERSIONS Python
# less /etc/make.conf
Если вы хотите оставить версию Python как 3.6 и не повышать версию, то внесите соответствующую запись в make.conf:
# vi /etc/make.conf DEFAULT_VERSIONS+= python=3.6 python3=3.6
Будем обновлять из портов с помощью программы Portmaster
если она не установлена, то установим
Из портов:
cd /usr/ports/ports-mgmt/portmaster/ && make install clean
С помощью пакеджей:
pkg install portmaster
Создадим скрипт обновления:
# vi ~/python_update.sh
Следующего содержания:
#!/bin/sh portmaster -o lang/python37 python36 REINSTALL="$(pkg info -o py36-\* | awk '{printf "%s ", $2}')" pkg delete -f py36-\* portmaster -d $REINSTALL REBUILD=$(pkg query -g "%n:%dn" '*' | grep py3 | grep -v py37 | cut -d : -f 1 | sort -u) portmaster -d $REBUILD
Сохраняем и назначаем права на исполнение:
# chmod +x ~/python_update.sh
И запускаем скрипт обновления:
~/python_update.sh
На этом все, в следующей заметки подними версию Perl с обновлением всех библиотек:)