Chinaunix首页 | 论坛 | 博客
  • 博客访问: 646731
  • 博文数量: 780
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 4885
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-22 16:14
文章分类

全部博文(780)

文章存档

2008年(780)

我的朋友

分类: LINUX

2008-08-22 16:23:37


硬件/虚拟机:T60/WindowsXP下的VMWare
系统:Fedora6
Emacs版本:22.0.50

先下载Emacs的稳定版本,据说Emacs-23.*.*不是太稳定,所以决定采用Emacs22,去ChinaUnix找到了安装包emacs-22.0.50-20050225.tar.gz,点击这里进入下载页面。
接下来是解压安装,安装时应该切换到root用户下。
$cpemacs-22.0.50-20050225.tar.gz/opt
$cd/opt
$tar-xvzfemacs-22.0.50-20050225.tar.gz
这时解压生成一个emacs-22.0.50的目录
$cdemacs-22.0.50
配置
$./configure
编译
$make
这个时候问题出现了!
无法编译通过,出现了段错误(Segfault),make的出错提示信息如下:

Dumpingundernamesemacsandemacs-22.0.50.1
**************************************************
Warning:YoursystemhasagapbetweenBSSandthe
heap(19987260byte).Thisusuallymeansthatexec-shield
orsomethingsimilarisineffect.Thedumpmay
failbecauseofthis.Seethesectionabout
exec-shieldinetc/PROBLEMSformoreinformation.
**************************************************
make[1]:***[emacs]Segmentationfault

从上面的信息我们可以看到,问题出在emace的安装与Linux操作系统2.6内核的安全补丁exec-shield冲突了,exec-shield是针对内存堆栈控制的安全补丁,可以预防一些内存泄露攻击等问题,默认是打开的。现在只需要在安装的过程中把它临时关闭就可以了。
关闭的方法如下:
$echo“0″>/proc/sys/kernal/exec-field
$echo“0″>/proc/sys/kernal/randomize_va_space
(PS:安装完毕重新打开exec-field的时候,把上面两句命令的”0″变成”1″,就行了)

这个时候,就可以再进行重新配置,编译了。
先清除掉原来的安装:
$makeclean
$makedistclean
继续安装
$./configure
$make
$makeinstall 下载本文示例代码
阅读(394) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~