热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

利用kerl來管理你系統上的Erlang版本

原文链接:http:littleq.logdown.composts20131011kerl-to-manage-erlang-versions-on-your-system最近又回到

原文链接: http://littleq.logdown.com/posts/2013/10/11/kerl-to-manage-erlang-versions-on-your-system

最近又回到了 Erlang 的懷抱了,不過之前因爲有自己弄了版本管理的方法,所以當初沒有試試看這一套,換了新的 MacBook Pro Retina 之後第一次開始寫 Erlang,剛好拿這套 Kerl 來用一下,試用一下發現真的很不錯呢!於是心血來潮寫一篇介紹來給中文的 Erlang developers 看一下。

Kerl 是幹什麼用的?

因爲 Erlang 衆多版本的問題,一次改版都會有不少的改動,加上因爲 functional language 比一般語言嚴謹的關係,所以常常一個 Erlang 寫的軟體會在特定的版本範圍內才可以使用,所以不是只要抓最新版下來就萬事 ok 的,如果靠系統提供的套件管理程式來安裝 Erlang,通常就只會拿到最新版,或是最近幾個版本,而且一次只能安裝一個,新的裝進來舊的得先移掉,我們需要一個方便的 Erlang 版本管理系統,安裝起來又不會太麻煩,就是 Kerl 啦!

開始安裝 Kerl

雖然說是系統,但是其實只是一支 script 而已,可以透過下面這個指令來安裝:

curl -O https://raw.github.com/spawngrid/kerl/master/kerl; chmod a+x kerl

這時候你在當前目錄下就可以用啦,LittleQ 建議大家可以把這隻 script 收進有在 $PATH 內的目錄下,這樣以後使用起來也比較方便啦!

要能活用 Kerl,你要先知道下面這三個名詞代表的意義是什麼:

  • Releases:現在 Erlang 有出的版本們。
  • Builds:在你電腦上已經下載完成且 build 好準備被你安裝的版本們(還不能使用)。
  • Installations:已經在你電腦上安裝好的版本們(可以被使用)。

Mac OS X 的使用者請注意,因爲預設的 configure 參數是針對 Linux 系統的,如果要在 Mac OS X 上面順利 build Erlang,你需要新增一個檔案 .kerlrc 在 $HOME (~) 底下,內容放上:

KERL_CONFIGURE_OPTIONS="--disable-hipe --enable-smp-support --enable-threads
--enable-kernel-poll --enable-darwin-64bit"

下載 Erlang 發行版(releases)

下載一個發行版,你只要用下面這個指令:

kerl build  
  • release 就是發行版本號(e.g. R15B03),可以透過 kerl list
    releases
     來查詢有那些版本號是可以被下載的。
  • build_name 就是你要替你下載下來的 erlang 取個名字,這裏你可以直接用版本號來命名,或是用專案名稱。

舉個例子,如果你要用版本號來命名,那你只要

kerl build R15B03 r1503

或是

kerl build R15B03 r15

如果你要用 project 來命名,那就是

kerl build R15B03 sschat

安裝指定版本進去系統內

在上一步之後,你會下載並且 build 好一個或是多個 Erlang 的 release,接下來爲了要可以使用,你必須把他安裝在系統的某處來使用,安裝的指令如下:

kerl install  

示範用安裝在 $HOME 底下的 erlang 底下爲例,

kerl install sschat ~/erlang/sschat

啓用某個版本

執行

source ~/erlang/sschat/activate

你就會被切到你所指定的 erlang 版本底下,接下來打 erl 來驗證你的版本是不是對的就好了。

如果要從目前這個環境離開,只要在終端機下面打 kerl_deactivate 就可以了。


推荐阅读
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Windows 7 部署工具DISM学习(二)添加补丁的步骤详解
    本文详细介绍了在Windows 7系统中使用部署工具DISM添加补丁的步骤。首先需要将光驱中的安装文件复制到指定文件夹,并进行挂载。然后将需要的MSU补丁解压并集成到系统中。文章给出了具体的命令和操作步骤,帮助读者完成补丁的添加过程。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 校园表白墙微信小程序,校园小情书、告白墙、论坛,大学表白墙搭建教程
    小程序的名字必须和你微信注册的名称一模一样在后台注册好小程序。mp.wx-union.cn后台域名https。mp.wx-union.cn ... [详细]
author-avatar
忆--______100
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有