热门标签 | 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 就可以了。


推荐阅读
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
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社区 版权所有