因为要升级python2到python3, 所以将操作记录一下.
1. 找到资料说The default versions of lang/python* have been changed to support the
new DEFAULT_VERSIONS variable.
PYTHON_DEFAULT_VERSION, PYTHON2_DEFAULT_VERSION and
PYTHON3_DEFAULT_VERSION 这几个设置已经放弃使用了. 如果需要设置, 需要按照添加如下设置到/etc/make.conf 文件里
DEFAULT_VERSIONS=python=2.7 python2=2.7 python3=3.3
2. 编辑了之后, 使用portsnap fetch命令更新系统的ports:
portsnap fetch
3. 然后使用portsnap update命令更新现有的已经安装的ports.
portsnap update
4. 然后进入 /usr/ports/lang/ 目录, ls一下就发现有了python33了, 进入python33目录, make install clean, 按照提示做, 最后编译完成
5. 试试运行python -t, 发现python还是2.7.6版本(freebsd默认自带的版本)
6.那么想运行python3.3怎么办, 输入python3.3命令即可, 不要输入python33
python3.3
至于python为什么执行的是python2.7.6, 可能还需要在哪里设置一下. 我没找到这个资料
------------------
7. 找到个资料说要创建软连接到python3.3, 就能使python默认是3.3版本了.
rm /usr/local/bin/python
ln -s /usr/local/bin/python3.3 /usr/local/bin/python
8. 如果你不知道你的python有哪些版本, 就可以试试这个命令:
# cd /usr/local/bin
# ls -l | grep python
9. 可以像系统那样设置:
ln -s /usr/local/bin/python3.3 /usr/local/bin/python3 # python3 连接到python3.3(将来python3.3升级到python3.4的话, python3就连接到python3.4)
ln -s /usr/local/bin/python3 /usr/local/bin/python # python 连接到python3这个软链, 以后只要你使用python3版本就不用再修改了, 不用管python3到底是3.3还是3.4
10. 我是按照9中弄的, 最后执行python -t试试, 看看版本
root@example:/usr/local/bin # python -t
Python 3.3.5 (default, Mar 30 2014, 15:15:46)
[GCC 4.2.1 Compatible FreeBSD Clang 3.3 (tags/RELEASE_33/final 183502)] on freebsd10
Type "help", "copyright", "credits" or "license" for more information.
>>>
11. 编译python3.3 的ports之后, 发现python还是2.7.6, 试图重启, 看看能不能变成python3.3, 结果发现无效果.
参考资料:
http://www.freebsd.org/doc/zh_CN.UTF-8/books/handbook/updating-upgrading-portsnap.html
https://www.freebsdchina.org/forum/viewtopic.php?t=55029&sid=41343727e25814d6b9a5399a9160c801
http://www.freshports.org/lang/python33/
https://forums.freebsd.org/viewtopic.php?&t=26081
http://johnrlive.com/how-to-install-python-on-freebsd/
https://www.freebsdchina.org/forum/viewtopic.php?t=55029&sid=41343727e25814d6b9a5399a9160c801
http://stackoverflow.com/questions/9349831/how-to-set-python-version-by-default-in-freebsd