免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6444 | 回复: 19
打印 上一主题 下一主题

编译安装Perl6 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-24 19:13 |只看该作者 |倒序浏览
本帖最后由 py 于 2014-04-30 13:53 编辑

我个人对perl6一直没什么兴趣,直到听说最近Larry到北京演示了一下perl6运行在不同的平台上,再加上前几天受扶凯鼓动,今天下午就做了这么个环境运行了一下。看了一下features,很不错的样子,又看了一下目前perl6的模块,还是比较少。但山雨欲来风满楼,我感觉,perl6应该能火。

开始说编译,编译还是挺顺利的,前后也就10分钟左右。
Perl6可以运行在jvm,parrot和MoarVM上,parrot上的性能最差,本人格外讨厌JAVA,所以只编译MoarVM。
如果是jvm的话,要求jvm1.7以上。目前perl6的开发人员说还没有针对jvm做优化,所以在MoarVM上的运行效率是最高的。并且perl6的开发人员都是用MoarVM
先编译MoarVM,用的是MoarVM-2014.01.tar.gz(https://github.com/MoarVM/MoarVM/archive/2014.01.tar.gz
perl Configure.pl --prefix=/usr/local/
make
make install

然后是nqp,https://github.com/perl6/nqp/archive/2014.01.tar.gz
perl Configure.pl --backends=moar --prefix=/usr/local/
make
make install

最后是rakudo(perl6的编译器),https://github.com/rakudo/rakudo/archive/2014.01.tar.gz
perl Configure.pl --backends=moar --prefix=/usr/local/
make
make install

安装好以后会在/usr/local/bin/下生成perl6文件
另外要注意,Rakudo官网上那个Rakudo Star Release实在是坑爹,就是把所有安装包打了个包,并且平台只支持jvm和parrot。不支持MoarVM。

我的平台是centos6.5 x64,但实际上什么平台都应该差不多。除了big endian的平台MoarVM可能会有些问题。大家要是图省事可以直接装扶凯的二进制包。


===============4月30日更新==================
4月最新的三个包下载地址
MoarVM
https://github.com/MoarVM/MoarVM/archive/2014.04.tar.gz
nqp
https://github.com/perl6/nqp/archive/2014.04.tar.gz
rakudo
https://github.com/rakudo/rakudo/archive/2014.04.tar.gz

目前发现的问题是MoarVM4月的打包中,目录3rdparty中缺少一些地方放的库,dyncall,libuv和linenoise目录是空的,可以把2014.01.tar.gz中的相应文件拷贝过来就可以了。

论坛徽章:
7
巳蛇
日期:2014-04-10 08:54:57白羊座
日期:2014-04-22 20:06:262015年亚洲杯之沙特阿拉伯
日期:2015-02-10 14:18:532015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之吉达阿赫利
日期:2015-06-02 11:34:112015亚冠之武里南联
日期:2015-06-24 12:13:082015亚冠之阿尔纳斯尔
日期:2015-08-03 09:08:25
2 [报告]
发表于 2014-04-24 19:38 |只看该作者
回复 1# py


   不,Rakudo Star Release不仅仅是你上面提到的几个安装包的打包,它也包含一些现在可以使用的预装的Perl 6 的模块和一些Perl 6 的文档之类,也包括一个用来安装Perl 6 模块的工具(叫做panda)。
相比Linux来说,rakudo对应Linux内核,Rakudo star release 对应Linux发行版。相对于Haskell来说,rakudo对应ghc,Rakudo Star 对应Haskell Platform。
而Rakudo Star 不包含MoarVM,是因为MoarVM是一个新项目,之前有些spec test没有通过,所以之前没有发布包含这个的Rakudo Start。不过,开发团队打算尽量在下个版本的Rakudo Start中提供所有三个后端,而且下个版本的Rakudo Start应该快出来了。

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
3 [报告]
发表于 2014-04-25 07:41 |只看该作者
如果以前用编译方式装过旧的,怎么把之前的删干净?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2014-04-25 08:35 |只看该作者
ttcn_cu 发表于 2014-04-25 07:41
如果以前用编译方式装过旧的,怎么把之前的删干净?

你把/usr/local/lib/perl5/目录下的site_perl和5.×.×手工删除掉就可以了,其他的覆盖。之后就不会有问题。

如果是想把所有文件一个不少的全删除,绝大多数情况对于编译安装的软件是不可能。这是包管理器的工作之一。

论坛徽章:
7
巳蛇
日期:2014-04-10 08:54:57白羊座
日期:2014-04-22 20:06:262015年亚洲杯之沙特阿拉伯
日期:2015-02-10 14:18:532015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之吉达阿赫利
日期:2015-06-02 11:34:112015亚冠之武里南联
日期:2015-06-24 12:13:082015亚冠之阿尔纳斯尔
日期:2015-08-03 09:08:25
5 [报告]
发表于 2014-04-25 08:58 |只看该作者
回复 4# py

1. 我想,他说的是如何删掉旧的Perl 6,而不是Perl 5,因为本楼的主题是Perl 6。
2. 对于自己安装的软件又想彻底删干净,又想不用包管理器的,安装的时候不要指定--prefix=/usr/local或者/usr,指定成专为那个软件准备的目录,再配置一些环境变量。像我经常自己从源代码安装各种软件的不同版本,而且都装在自己的目录下。
例子,我建了一个目录,把那个路径名设成了环境变量$SOFT,我安装ghc-7.6.2的时候我的--prefix=$SOFT/ghc-7.6.2,装ghc-7.8.2的时候我的--prefix=$SOFT/ghc-7.8.2,我可以换用这两个的任何一个,当我不再需要ghc-7.6.2的时候我直接删掉$SOFT/ghc-7.6.2这样会彻底删除ghc-7.6.2。
当然用这种方式需要知道一些常用的环境变量的配置方法,像PATH, MANPATH,还有根据需要的其他环境变量。
   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2014-04-25 10:16 |只看该作者
回复 5# Monox
我把“旧的”当成perl5了...

可你这样解释也没什么意义吧,用--prefix谁都知道,如果他装的时候指定了一个特殊目录也就没必要有此一问了。显然他是已经装在了一个希望能清理干净的目录。

除非有make uninstall或是根据log逐一删除文件了。


   

论坛徽章:
7
巳蛇
日期:2014-04-10 08:54:57白羊座
日期:2014-04-22 20:06:262015年亚洲杯之沙特阿拉伯
日期:2015-02-10 14:18:532015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之吉达阿赫利
日期:2015-06-02 11:34:112015亚冠之武里南联
日期:2015-06-24 12:13:082015亚冠之阿尔纳斯尔
日期:2015-08-03 09:08:25
7 [报告]
发表于 2014-04-25 10:44 |只看该作者
回复 6# py

嗯,是这样的。make uninstall的话需要有旧版软件的源代码。而且确实并不是所有软件都提供make uninstall。

不过,并不像你说的每个人都会--prefix的,每个人都有从新手到熟手的过程。你认为理所当然或者很简单的事情对别人来说并不一定是如此。所以我觉得我这里提--prefix虽然解决不了他已经安装的旧软件的问题,但是对他以后安装软件是有帮助的,所以(我认为)是有必要提到的。
因为一般人按照网上的资料编译软件都指定--prefix=/usr/local,但是他们并不真正理解这个--prefix可以当作一个技巧的。像我安装软件就从来不会指定--prefix=/usr或者--prefix=/usr/local从来都是指定在我的home目录下的某个路径下面,除非是构建LFS系统的时候。
其实软件管理有很多种方案,除了rpm之类的包管理器外,指定特定的--prefix也是可行的方案之一,这个其实在LFS的手册里也有提及的。
   

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
8 [报告]
发表于 2014-04-25 11:54 |只看该作者
回复 7# Monox


    我有一个目录是 ~/local 所有编译安装的软件都会指定 --prefix=/home/ID/local
这样只要设置 PATH=~/local/binPATH  就能自动用安装目录里的东西了,问题是多个软件安装在一起,就不能区分不同的软件

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
9 [报告]
发表于 2014-04-25 11:55 |只看该作者
谁做一个perl6brew?

论坛徽章:
1
辰龙
日期:2014-05-15 19:37:15
10 [报告]
发表于 2014-04-25 14:55 |只看该作者
回复 9# ttcn_cu


装个我打包的 Perl6 的 rpm 包就好了.上面什么删除原来安装的 Perl 6 之类的问题都没有了.

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP