在 Mac 山猫 10.8 中从代码编译安装 vim
在 Mac 山猫 10.8 中从代码编译安装 vim
Translations: en
我在安装过程中遇到一些问题, 所以记录下来. 我安装的是 vim 7.4.
友情提醒!! 一定要等看完全文再动手实践! 因为当中有些问题是在后面阐述的!
我在 Max OS X Mountain Lion 10.8 上根据 hackercodex 安装了 python 和 hg.
安装过程中我参考了 Building Vim from source, 但是安装是在 Ubuntu 下的.
我把vim的代码放在 ~/.mybuild/
目录下:
mkdir -p ~/.mybuild && cd ~/.mybuild
然后克隆vim的工程:
hg clone https://code.google.com/p/vim/ cd vim
再次提醒!!! 请先看完文章, 因为在配置前需要对源代码做一些修改. 然后如下配置, 如果您不是使用 vim 7.4, 请确保 VIMRUNTIMEDIR 是正确的 (例如, 对于 vim7.3, 使用/usr/local/share/vim/vim73
):
./configure --with-features=huge --enable-rubyinterp --enable-pythoninterp --enable-perlinterp --enable-cscope --enable-multibyte make VIMRUNTIMEDIR=/usr/local/share/vim/vim74
Vim 将被安装在 /usr/local/bin/
, 我们可以看一下 vim 的代码配置文件或者输入命令 ./configure help
. 一些选项主要在 src/auto/configure
文件中. 部分说明如下:
By default, 'make install' will install all the files in '$ac_default_prefix/bin', '$ac_default_prefix/lib' etc. You can specify an installation prefix other than '$ac_default_prefix' using '--prefix', for instance '--prefix=\$HOME'.
并且该文件对 ac_default_prefix
进行了赋值:
ac_default_prefix=/usr/local
由于 python 是安装在 /usr/local
, 我也想将 vim 安装在该目录下. 不需要设置 --with-python-config-dir
, 因为从 configure 执行结果来看, 该路径是正确的:
checking --enable-pythoninterp argument... yes checking for python2... /usr/local/bin/python2 checking Python version... 2.7 checking Python is 2.3 or better... yep checking Python's install prefix... /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7 checking Python's execution prefix... /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7 checking Python's configuration directory... /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
注意! 上述配置并不能完全起效, vim 使用的仍旧是系统的 python 而不是我们使用 brew 安装的 python. Google 好久之后找到了解决方案 solution!
我们查看源代码 ~/.mybuild/vim/src/auto/configure
, 将如下行:
if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \"import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then vi_cv_path_python_plibs="-framework Python"
替换成:
if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \"import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then vi_cv_path_python_plibs="-F /usr/local/Cellar/python/2.7.5/Frameworks -framework Python"
注意到您的系统上路径名可能不是 /usr/local/Cellar/python/2.7.5/Frameworks
. 因为我使用 brew 安装 python, python 的 config.c 文件在/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config/
.
如果您已经不小心已经执行了 configure 和 make, 请先执行 make clean
(如有必要可能还需要执行make distclean
), 然后再重新 configure 和 make.
然后我们可以执行如下命令来安装, 不过我建议您先读完本文, 因为可能会遇到一些问题:
sudo make install
虽然直接安装能够通过, 并且 vim 似乎也是可以正确运行的. 但是我发现安装的过程中又几个错误. 不仔细的话你会发现不了:
sed: RE error: illegal byte sequence
我 google 了一个多小时, 只找到了解决方法, 但是没人解释这个问题. 所以先就这样解决吧.
执行 locale
命令如下结果:
LANG="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_CTYPE="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_ALL="en_US.UTF-8"
这是因为我之前在 ~/.bash_profile
中加入了:
export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8
我注释了这两行, 然后重新打开一个终端, 执行 locale
:
LANG= LC_COLLATE="C" LC_CTYPE="en_US.UTF-8" LC_MESSAGES="C" LC_MONETARY="C" LC_NUMERIC="C" LC_TIME="C" LC_ALL=
但是 LC_CTYPE 仍旧部队, 所以我们需要执行 export LC_CTYPE="C"
, 然后执行 locale
:
LANG= LC_COLLATE="C" LC_CTYPE="C" LC_MESSAGES="C" LC_MONETARY="C" LC_NUMERIC="C" LC_TIME="C" LC_ALL=
现在我们可以执行 sudo make install
了, 可以发现没有error啦!
Enjoy your vim!
PS: 你最好恢复 ~/.bash_profile
中刚刚注释的那两行.
Category: Mac
Tags: mac, vim, mountain lion, brew,
Translations: en
在 Mac 山猫 10.8 中从代码编译安装 vim相关推荐
- Ubuntu20.10系统FreeCAD 0.19编译安装
Ubuntu20.10系统FreeCAD 0.19编译安装 济南友泉软件有限公司 零.系统环境 root@test-HVM-domU:~# lsb_release -a No LSB modules ...
- mysql源 如何编译安装,MySQL5.7.22-源代码编译安装
Centos下用cmake编译安装MySQL 5.7.22 环境:CentOS6.8 [root@li1164-33 mysql5722]# cat /etc/redhat-release CentO ...
- UE5编辑器中C++代码编译按钮在哪里?
文章目录 1.出现问题 2.解决过程 3.参考资料 1.出现问题 之前在用UE4.27版本时,UE编辑器工具栏Play的旁边就有Compile工具,可以将C++新加入的代码进行编译,然后在蓝图中使用, ...
- linux ibus中文,Ubuntu 14.10系统中IBUS 中文输入法安装的图文教程
IBUS 是 linux 下的输入框架,框架内的各种输入法是 Ubuntu 默认的非英文输入方式.新安装的 Ubuntu 系统,如果选择了中文环境,系统首次联网成功后,会提示用户下载 IBUS 下的拼 ...
- centos7.8中源码编译安装redis
1.下载地址:http://www.redis.cn/download.html 2.所有版本地址:Index of /releases/ 我使用的是3.2.12版本 #1.上传文件到/opt文件目录 ...
- linux中源码编译安装mysql常见错误
一) #./configure --prefix=/usr/local/mysql-5.1.54 (mysql指定路径安装报错:) 如下: checking for termcap functions ...
- php源码无法安装mysql_linux中源码编译安装mysql常见错误
(一) #./configure --prefix=/usr/local/mysql-5.1.54 (mysql指定路径安装报错:) 如下: checking for termcap function ...
- linux-centos7中lnmp服务器编译安装含systemctl启动service(转)
centos7 nginx mysql php 可以分开安装 然后在配置nginx互php的 先安装一些必要的库 ---------------------------------------- ...
- Nginx 1.5.2 + PHP 5.5.1 + MySQL 5.6.10 在 CentOS 下的编译安装
最近配置了几台Web服务器,将安装笔记贴出来吧.没时间像以前那样,将文章写的那样系统了,请见谅.详细配置,可以看以前的旧文章:http://blog.zyan.cc/nginx_php_v61.安装N ...
最新文章
- Citrix XenServer 关键配置文件
- 怎么一键备份服务器系统还原,电脑怎么一键还原
- 数组中子数组的最大累乘积
- 自动化测试框架搭建-报告-4
- Docker常用命令、超实用、讲解清晰明了(rm、stop、start、kill、logs、diff、top、cp、restart ...)
- 为学好计算机 要采取什么措施,计算机概念教学的内容及对策
- 递归应用:折半查找法
- 智能互联网之数据存储实践
- Android:布局单位换算
- 安徽2022农民丰收节 国稻种芯:郑栅洁启动舒城主场活动仪式
- 深入理解短时傅里叶变换 STFT + Python 代码详解
- 【架构风格 架构模式 设计模式 概念】
- 5G已开始商用 目前提供5G商用服务的国家有哪些?
- 屠龙传说世界【全自动】辅助脚本
- 再议访问者模式 - Visitor vs Acyclic Visitor
- Virt-manager安装
- Harbor安装教程-完全根据官方文档2.6.0版本
- matlab画出玫瑰线,数学实验 玫瑰线的绘制
- 【解决方案】A session ended very soon after starting. Check that the command in profile “XXX” is correct.
- 为什么65535是极值