8000 GitHub - raghavkarol/kerl: Easy building and installing of Erlang/OTP instances
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
forked from kerl/kerl

Easy building and installing of Erlang/OTP instances

Notifications You must be signed in to change notification settings

raghavkarol/kerl

{"props":{"initialPayload":{"allShortcutsEnabled":false,"path":"/","repo":{"id":304876558,"defaultBranch":"master","name":"kerl","ownerLogin":"raghavkarol","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2020-10-17T12:49:16.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/521305?v=4","public":true,"private":false,"isOrgOwned":false},"currentUser":null,"refInfo":{"name":"master","listCacheKey":"v0:1602945617.0","canEdit":false,"refType":"branch","currentOid":"786993f35a6c1820def91f4a7897a9c6a0e7bc95"},"tree":{"items":[{"name":".circleci","path":".circleci","contentType":"directory"},{"name":"bash_completion","path":"bash_completion","contentType":"directory"},{"name":"zsh_completion","path":"zsh_completion","contentType":"directory"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".travis.yml","path":".travis.yml","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"kerl","path":"kerl","contentType":"file"}],"templateDirectorySuggestionUrl":null,"readme":null,"totalCount":7,"showBranchInfobar":true},"fileTree":null,"fileTreeProcessingTime":null,"foldersToFetch":[],"treeExpanded":false,"symbolsExpanded":false,"isOverview":true,"overview":{"banners":{"shouldRecommendReadme":false,"isPersonalRepo":false,"showUseActionBanner":false,"actionSlug":null,"actionId":null,"showProtectBranchBanner":false,"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_repo","releasePath":"/raghavkarol/kerl/releases/new?marketplace=true","showPublishActionBanner":false},"interactionLimitBanner":null,"showInvitationBanner":false,"inviterName":null,"actionsMigrationBannerInfo":{"releaseTags":[],"showImmutableActionsMigrationBanner":false,"initialMigrationStatus":null}},"codeButton":{"contactPath":"/contact","isEnterprise":false,"local":{"protocolInfo":{"httpAvailable":true,"sshAvailable":null,"httpUrl":"https://github.com/raghavkarol/kerl.git","showCloneWarning":null,"sshUrl":null,"sshCertificatesRequired":null,"sshCertificatesAvailable":null,"ghCliUrl":"gh repo clone raghavkarol/kerl","defaultProtocol":"http","newSshKeyUrl":"/settings/ssh/new","setProtocolPath":"/users/set_protocol"},"platformInfo":{"cloneUrl":"https://desktop.github.com","showVisualStudioCloneButton":false,"visualStudioCloneUrl":"https://windows.github.com","showXcodeCloneButton":false,"xcodeCloneUrl":"xcode://clone?repo=https%3A%2F%2Fgithub.com%2Fraghavkarol%2Fkerl","zipballUrl":"/raghavkarol/kerl/archive/refs/heads/master.zip"}},"newCodespacePath":"/codespaces/new?hide_repo_select=true\u0026repo=304876558"},"popovers":{"rename":null,"renamedParentRepo":null},"commitCount":"504","overviewFiles":[{"displayName":"README.md","repoName":"kerl","refName":"master","path":"README.md","preferredFileType":"readme","tabName":"README","richText":"\u003carticle class=\"markdown-body entry-content container-lg\" itemprop=\"text\"\u003e\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch1 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003ekerl \u003ca href=\"https://travis-ci.org/kerl/kerl\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/4e72dcf9f720ac378ff3c0d2217b16ef70bd4cf32d86d4fcf2174a81b51738ac/68747470733a2f2f7472617669732d63692e6f72672f6b65726c2f6b65726c2e7376673f6272616e63683d6d6173746572\" alt=\"TravisCI build status\" data-canonical-src=\"https://travis-ci.org/kerl/kerl.svg?branch=master\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e \u003ca href=\"https://circleci.com/gh/kerl/kerl\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/3cfd2c36d5f754232d818575160a510729b89464624392a05fc2fe5014a0726f/68747470733a2f2f636972636c6563692e636f6d2f67682f6b65726c2f6b65726c2e7376673f7374796c653d737667\" alt=\"CircleCI\" data-canonical-src=\"https://circleci.com/gh/kerl/kerl.svg?style=svg\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\u003c/h1\u003e\u003ca id=\"user-content-kerl--\" class=\"anchor\" aria-label=\"Permalink: kerl \" href=\"#kerl--\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eEasy building and installing of \u003ca href=\"https://www.erlang.org\" rel=\"nofollow\"\u003eErlang/OTP\u003c/a\u003e instances.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eKerl aims to be shell agnostic and its only dependencies, excluding what's\nrequired to actually build Erlang/OTP, are \u003ccode\u003ecurl\u003c/code\u003e and \u003ccode\u003egit\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eAll is done so that, once a specific release has been built, creating a new\ninstallation is as fast as possible.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eOTP Support Policy\u003c/h2\u003e\u003ca id=\"user-content-otp-support-policy\" class=\"anchor\" aria-label=\"Permalink: OTP Support Policy\" href=\"#otp-support-policy\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eAs of 2020 March 3, we are supporting OTP builds back to 20. Older builds\nmay or may not work. We will advance release support as new releases of OTP\nbecome available.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eTriage cadence\u003c/h2\u003e\u003ca id=\"user-content-triage-cadence\" class=\"anchor\" aria-label=\"Permalink: Triage cadence\" href=\"#triage-cadence\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eWe triage kerl pull requests and issues at least once a month, typically on\nthe fourth Tuesday of the month at 1 pm US/Pacific or 8 pm UTC.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eIRC channel\u003c/h2\u003e\u003ca id=\"user-content-irc-channel\" class=\"anchor\" aria-label=\"Permalink: IRC channel\" href=\"#irc-channel\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eWe have a channel on \u003ca href=\"http://webchat.freenode.net\" rel=\"nofollow\"\u003efreenode\u003c/a\u003e called \u003ccode\u003e#kerl\u003c/code\u003e -\nfeel free to join and ask support or implementation questions any time. If\nno one is around, feel free to open an issue with your question or problem\ninstead.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eDownloading\u003c/h2\u003e\u003ca id=\"user-content-downloading\" class=\"anchor\" aria-label=\"Permalink: Downloading\" href=\"#downloading\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eIf you are on MacOS, and using \u003ca href=\"https://github.com/Homebrew/brew\"\u003ehomebrew\u003c/a\u003e,\nyou can install kerl, along with shell completion, by running:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ brew install kerl\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ brew install kerl\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eAlternatively, you can download the script directly from github:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ curl -O https://raw.githubusercontent.com/kerl/kerl/master/kerl\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ curl -O https://raw.githubusercontent.com/kerl/kerl/master/kerl\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThen ensure it is executable\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ chmod a+x kerl\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ chmod a+x kerl\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eand drop it in your $PATH\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eOptionally download and install kerl's bash_completion file from\n\u003ca href=\"https://github.com/kerl/kerl/raw/master/bash_completion/kerl\"\u003ehttps://github.com/kerl/kerl/raw/master/bash_completion/kerl\u003c/a\u003e\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eOptionally download and install kerl's zsh-completion file from\n\u003ca href=\"https://github.com/kerl/kerl/raw/master/zsh_completion/_kerl\"\u003ehttps://github.com/kerl/kerl/raw/master/zsh_completion/_kerl\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eHow it works\u003c/h2\u003e\u003ca id=\"user-content-how-it-works\" class=\"anchor\" aria-label=\"Permalink: How it works\" href=\"#how-it-works\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eKerl keeps tracks of the releases it downloads, builds and installs, allowing\neasy installations to new destinations (without complete rebuilding) and easy\nswitches between Erlang/OTP installations.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eBy default, kerl downloads source tarballs from the \u003ca href=\"https://github.com/erlang/otp/tags\"\u003eofficial repository tags\u003c/a\u003e\nbut you can tell kerl to download from the \u003ca href=\"https://www.erlang.org/downloads\" rel=\"nofollow\"\u003eofficial Erlang website\u003c/a\u003e by setting \u003ccode\u003eKERL_BUILD_BACKEND=tarball\u003c/code\u003e.\nHowever this website does not use HTTPS and is down more often than Github.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eYou can also install directly from a raw git repository by using the \u003ccode\u003ekerl build git \u0026lt;git_url\u0026gt; \u0026lt;git_version\u0026gt; \u0026lt;build_name\u0026gt;\u003c/code\u003e syntax.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eUsage\u003c/h2\u003e\u003ca id=\"user-content-usage\" class=\"anchor\" aria-label=\"Permalink: Usage\" href=\"#usage\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eList the available releases (kerl ignores releases \u0026lt; 10):\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl list releases\nR10B-0 R10B-10 R10B-1a R10B-2 R10B-3 R10B-4 R10B-5 R10B-6 R10B-7 R10B-8 R10B-9 R11B-0 R11B-1 R11B-2 R11B-3 R11B-4 R11B-5 R12B-0 R12B-1 R12B-2 R12B-3 R12B-4 R12B-5 R13A R13B01 R13B02-1 R13B02 R13B03 R13B04 R13B R14A R14B01 R14B02 R14B03 R14B04 R14B R14B_erts-5.8.1.1 R15B01 R15B02 R15B02_with_MSVCR100_installer_fix R15B03-1 R15B03 R15B R16A_RELEASE_CANDIDATE R16B01 R16B02 R16B03-1 R16B03 R16B 17.0-rc1 17.0-rc2 17.0 17.1 17.3 17.4 17.5 18.0 18.1 18.2 18.2.1 18.3 19.0 19.1 19.2\nRun '/usr/local/bin/kerl update releases' to update this list from erlang.org\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl list releases\nR10B-0 R10B-10 R10B-1a R10B-2 R10B-3 R10B-4 R10B-5 R10B-6 R10B-7 R10B-8 R10B-9 R11B-0 R11B-1 R11B-2 R11B-3 R11B-4 R11B-5 R12B-0 R12B-1 R12B-2 R12B-3 R12B-4 R12B-5 R13A R13B01 R13B02-1 R13B02 R13B03 R13B04 R13B R14A R14B01 R14B02 R14B03 R14B04 R14B R14B_erts-5.8.1.1 R15B01 R15B02 R15B02_with_MSVCR100_installer_fix R15B03-1 R15B03 R15B R16A_RELEASE_CANDIDATE R16B01 R16B02 R16B03-1 R16B03 R16B 17.0-rc1 17.0-rc2 17.0 17.1 17.3 17.4 17.5 18.0 18.1 18.2 18.2.1 18.3 19.0 19.1 19.2\nRun '/usr/local/bin/kerl update releases' to update this list from erlang.org\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ePick your choice and build it:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl build 19.2 19.2\nVerifying archive checksum...\nChecksum verified (7cdd18a826dd7bda0ca46d1c3b2efca6)\nExtracting source code\nBuilding Erlang/OTP 19.2 (19.2), please wait...\nErlang/OTP 19.2 (19.2) has been successfully built\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl build 19.2 19.2\nVerifying archive checksum...\nChecksum verified (7cdd18a826dd7bda0ca46d1c3b2efca6)\nExtracting source code\nBuilding Erlang/OTP 19.2 (19.2), please wait...\nErlang/OTP 19.2 (19.2) has been successfully built\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eNote that named builds allow you to have different builds for the same Erlang/OTP release with different configure options:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ KERL_BUILD_DOCS=yes kerl build 19.2 19.2-builtdocs\nVerifying archive checksum...\nChecksum verified (7cdd18a826dd7bda0ca46d1c3b2efca6)\nExtracting source code\nBuilding Erlang/OTP 19.2 (19.2-builtdocs), please wait...\nBuilding docs...\nErlang/OTP 19.2 (19.2-builtdocs) has been successfully built\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ KERL_BUILD_DOCS=yes kerl build 19.2 19.2-builtdocs\nVerifying archive checksum...\nChecksum verified (7cdd18a826dd7bda0ca46d1c3b2efca6)\nExtracting source code\nBuilding Erlang/OTP 19.2 (19.2-builtdocs), please wait...\nBuilding docs...\nErlang/OTP 19.2 (19.2-builtdocs) has been successfully built\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e(Note that kerl uses the otp_build script internally, and \u003ccode\u003e./otp_build configure\u003c/code\u003e disables HiPE on linux)\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eYou can verify your build has been registered:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl list builds\n19.2,19.2\n19.2,19.2-builtdocs\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl list builds\n19.2,19.2\n19.2,19.2-builtdocs\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eNow install a build to some location:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl install 19.2 ~/kerl/19.2\nInstalling Erlang/OTP 19.2 (19.2) in /Users/sanmiguel/kerl/19.2...\nYou can activate this installation running the following command:\n. /Users/sanmiguel/kerl/19.2/activate\nLater on, you can leave the installation typing:\nkerl_deactivate\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl install 19.2 ~/kerl/19.2\nInstalling Erlang/OTP 19.2 (19.2) in /Users/sanmiguel/kerl/19.2...\nYou can activate this installation running the following command:\n. /Users/sanmiguel/kerl/19.2/activate\nLater on, you can leave the installation typing:\nkerl_deactivate\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eHere again you can check the installation's been registered:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl list installations\n19.2 /Users/sanmiguel/kerl/19.2\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl list installations\n19.2 /Users/sanmiguel/kerl/19.2\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eAnd at last activate it:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ . /path/to/install/dir/activate\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ . /path/to/install/dir/activate\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eActivation will backup your $PATH, prepend it with the installation's bin/\ndirectory. Thus it's only valid for the current shell session, and until you\nactivate another installation or call \u003ccode\u003ekerl_deactivate\u003c/code\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eYou're now ready to work with your 19.2 installation:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ erl -version\nErlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 8.2\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ erl -version\nErlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 8.2\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eWhen you're done just call the shell function:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl_deactivate\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl_deactivate\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eAnytime you can check which installation, if any, is currently active with:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl active\nThe current active installation is:\n/Users/sanmiguel/kerl/19.2\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl active\nThe current active installation is:\n/Users/sanmiguel/kerl/19.2\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eYou can get an overview of the current kerl state with:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl status\nAvailable builds:\n19.2,19.2\n----------\nAvailable installations:\n19.2 /Users/sanmiguel/kerl/19.2\n----------\nThe current active installation is:\n/Users/sanmiguel/kerl/19.2\nThere's no Dialyzer PLT for the active installation\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl status\nAvailable builds:\n19.2,19.2\n----------\nAvailable installations:\n19.2 /Users/sanmiguel/kerl/19.2\n----------\nThe current active installation is:\n/Users/sanmiguel/kerl/19.2\nThere's no Dialyzer PLT for the active installation\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eYou can delete builds and installations with the following commands:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl delete build 19.2\nThe 19.2 build has been deleted\n$ kerl delete installation /path/to/install/dir\nThe installation in /path/to/install/dir has been deleted\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl delete build 19.2\nThe 19.2 build has been deleted\n$ kerl delete installation /path/to/install/dir\nThe installation in /path/to/install/dir has been deleted\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eYou can easily deploy an installation to another host having \u003ccode\u003essh\u003c/code\u003e and \u003ccode\u003ersync\u003c/code\u003e access with the following command:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl deploy anotherhost /path/to/install/dir\nCloning Erlang/OTP 19.2 (/path/to/install/dir) to anotherhost (/path/to/install/dir) ...\nOn anotherhost, you can activate this installation running the following command:\n. /path/to/install/dir/activate\nLater on, you can leave the installation typing:\nkerl_deactivate\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl deploy anotherhost /path/to/install/dir\nCloning Erlang/OTP 19.2 (/path/to/install/dir) to anotherhost (/path/to/install/dir) ...\nOn anotherhost, you can activate this installation running the following command:\n. /path/to/install/dir/activate\nLater on, you can leave the installation typing:\nkerl_deactivate\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eBuilding from a github fork\u003c/h2\u003e\u003ca id=\"user-content-building-from-a-github-fork\" class=\"anchor\" aria-label=\"Permalink: Building from a github fork\" href=\"#building-from-a-github-fork\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eIt is possible to build Erlang from a github fork, by using the \u003ccode\u003eKERL_BUILD_BACKEND=git\u003c/code\u003e and setting \u003ccode\u003eOTP_GITHUB_URL\u003c/code\u003e to the URL of the fork. For example, to build Basho's OTP fork:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ export KERL_BUILD_BACKEND=git\n$ export OTP_GITHUB_URL='https://github.com/basho/otp'\n$ kerl update releases\nThe available releases are:\nR13B03 R13B04 R14A R14B R14B01 R14B02 R14B03 R14B04 R15A R15B R15B01 R15B01_basho1 R15B01p R15B02 R15B03 R15B03-1 R16A_RELEASE_CANDIDATE R16B R16B01 R16B01_RC1 R16B02 R16B02_basho R16B02_basho10 R16B02_basho10rc1 R16B02_basho10rc2 R16B02_basho10rc3 R16B02_basho2 R16B02_basho3 R16B02_basho4 R16B02_basho5 R16B02_basho6 R16B02_basho7 R16B02_basho8 R16B02_basho9 R16B02_basho9rc1 R16B03 R16B03-1 R16B03_yielding_binary_to_term 17.0 17.0-rc1 17.0-rc2 17.0.1 17.0.2 17.1 17.1.1 17.1.2 17.2 17.2.1 17.2.2 17.3 17.3.1 17.3.2 17.3.3 17.3.4 17.4 17.4.1 17.5 17.5.1 17.5.2 17.5.3 17.5.4 17.5.5 17.5.6 17.5.6.1 17.5.6.2 17.5.6.3 17.5.6.4 17.5.6.5 17.5.6.6 17.5.6.7 17.5.6.8 17.5.6.9 18.0 18.0-rc1 18.0-rc2 18.0.1 18.0.2 18.0.3 18.1 18.1.1 18.1.2 18.1.3 18.1.4 18.1.5 18.2 18.2.1 18.2.2 18.2.3 18.2.4 18.2.4.1 18.3 18.3.1 18.3.2 18.3.3 18.3.4 18.3.4.1 19.0 19.0-rc1 19.0-rc2 19.0.2\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ export KERL_BUILD_BACKEND=git\n$ export OTP_GITHUB_URL='https://github.com/basho/otp'\n$ kerl update releases\nThe available releases are:\nR13B03 R13B04 R14A R14B R14B01 R14B02 R14B03 R14B04 R15A R15B R15B01 R15B01_basho1 R15B01p R15B02 R15B03 R15B03-1 R16A_RELEASE_CANDIDATE R16B R16B01 R16B01_RC1 R16B02 R16B02_basho R16B02_basho10 R16B02_basho10rc1 R16B02_basho10rc2 R16B02_basho10rc3 R16B02_basho2 R16B02_basho3 R16B02_basho4 R16B02_basho5 R16B02_basho6 R16B02_basho7 R16B02_basho8 R16B02_basho9 R16B02_basho9rc1 R16B03 R16B03-1 R16B03_yielding_binary_to_term 17.0 17.0-rc1 17.0-rc2 17.0.1 17.0.2 17.1 17.1.1 17.1.2 17.2 17.2.1 17.2.2 17.3 17.3.1 17.3.2 17.3.3 17.3.4 17.4 17.4.1 17.5 17.5.1 17.5.2 17.5.3 17.5.4 17.5.5 17.5.6 17.5.6.1 17.5.6.2 17.5.6.3 17.5.6.4 17.5.6.5 17.5.6.6 17.5.6.7 17.5.6.8 17.5.6.9 18.0 18.0-rc1 18.0-rc2 18.0.1 18.0.2 18.0.3 18.1 18.1.1 18.1.2 18.1.3 18.1.4 18.1.5 18.2 18.2.1 18.2.2 18.2.3 18.2.4 18.2.4.1 18.3 18.3.1 18.3.2 18.3.3 18.3.4 18.3.4.1 19.0 19.0-rc1 19.0-rc2 19.0.2\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eFrom here (provided the \u003ccode\u003eKERL_BUILD_BACKEND\u003c/code\u003e and \u003ccode\u003eOTP_GITHUB_URL\u003c/code\u003e variables remain in place), it is possible to use kerl as normal:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl build R16B02_basho10 16b02-basho10\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl build R16B02_basho10 16b02-basho10\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eBuilding from a git source\u003c/h2\u003e\u003ca id=\"user-content-building-from-a-git-source\" class=\"anchor\" aria-label=\"Permalink: Building from a git source\" href=\"#building-from-a-git-source\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eYou can build Erlang directly from a git repository with a command of the form\n\u003ccode\u003ekerl build git \u0026lt;git_url\u0026gt; \u0026lt;git_version\u0026gt; \u0026lt;build_name\u0026gt;\u003c/code\u003e where \u003ccode\u003e\u0026lt;git_version\u0026gt;\u003c/code\u003e can\nbe either a branch, a tag or a commit id that will be passed to \u003ccode\u003egit checkout\u003c/code\u003e:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl build git https://github.com/erlang/otp.git dev 19.2_dev\nChecking Erlang/OTP git repository from https://github.com/erlang/otp.git...\nBuilding Erlang/OTP 19.2_dev from git, please wait...\nErlang/OTP 19.2_dev from git has been successfully built\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl build git https://github.com/erlang/otp.git dev 19.2_dev\nChecking Erlang/OTP git repository from https://github.com/erlang/otp.git...\nBuilding Erlang/OTP 19.2_dev from git, please wait...\nErlang/OTP 19.2_dev from git has been successfully built\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eTuning\u003c/h2\u003e\u003ca id=\"user-content-tuning\" class=\"anchor\" aria-label=\"Permalink: Tuning\" href=\"#tuning\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eYou can tune kerl using the .kerlrc file in your $HOME directory.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eLocations on disk\u003c/h2\u003e\u003ca id=\"user-content-locations-on-disk\" class=\"anchor\" aria-label=\"Permalink: Locations on disk\" href=\"#locations-on-disk\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_BASE_DIR\u003c/h3\u003e\u003ca id=\"user-content-kerl_base_dir\" class=\"anchor\" aria-label=\"Permalink: KERL_BASE_DIR\" href=\"#kerl_base_dir\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eDefault: \u003ccode\u003e\"$HOME\"/.kerl\u003c/code\u003e\nDirectory in which kerl will cache artefacts for building and installing.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_CONFIG\u003c/h3\u003e\u003ca id=\"user-content-kerl_config\" class=\"anchor\" aria-label=\"Permalink: KERL_CONFIG\" href=\"#kerl_config\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eDefault: \u003ccode\u003e\"$HOME\"/.kerlrc\u003c/code\u003e\nFile from which to source kerl configuration\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_DOWNLOAD_DIR\u003c/h3\u003e\u003ca id=\"user-content-kerl_download_dir\" class=\"anchor\" aria-label=\"Permalink: KERL_DOWNLOAD_DIR\" href=\"#kerl_download_dir\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eDefault: \u003ccode\u003e${KERL_BASE_DIR}/archives\u003c/code\u003e\nDirectory in which to place downloaded artefacts\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_BUILD_DIR\u003c/h3\u003e\u003ca id=\"user-content-kerl_build_dir\" class=\"anchor\" aria-label=\"Permalink: KERL_BUILD_DIR\" href=\"#kerl_build_dir\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eDefault: `${KERL_BASE_DIR}/builds\nDirectory in which kerl will perform builds\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_GIT_DIR\u003c/h3\u003e\u003ca id=\"user-content-kerl_git_dir\" class=\"anchor\" aria-label=\"Permalink: KERL_GIT_DIR\" href=\"#kerl_git_dir\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eDefault: \u003ccode\u003e${KERL_BASE_DIR}/gits\u003c/code\u003e\nDirectory in which kerl will clone git repositories for building.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eBuild configuration\u003c/h2\u003e\u003ca id=\"user-content-build-configuration\" class=\"anchor\" aria-label=\"Permalink: Build configuration\" href=\"#build-configuration\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_CONFIGURE_OPTIONS\u003c/h3\u003e\u003ca id=\"user-content-kerl_configure_options\" class=\"anchor\" aria-label=\"Permalink: KERL_CONFIGURE_OPTIONS\" href=\"#kerl_configure_options\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eSpace-separated options to pass to \u003ccode\u003econfigure\u003c/code\u003e when building OTP.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_CONFIGURE_APPLICATIONS\u003c/h3\u003e\u003ca id=\"user-content-kerl_configure_applications\" class=\"anchor\" aria-label=\"Permalink: KERL_CONFIGURE_APPLICATIONS\" href=\"#kerl_configure_applications\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eSpace-separated list of OTP applications which should exclusively be built.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_CONFIGURE_DISABLE_APPLICATIONS\u003c/h3\u003e\u003ca id=\"user-content-kerl_configure_disable_applications\" class=\"anchor\" aria-label=\"Permalink: KERL_CONFIGURE_DISABLE_APPLICATIONS\" href=\"#kerl_configure_disable_applications\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eSpace-separated list of OTP applications to disable during building.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_BUILD_PLT\u003c/h3\u003e\u003ca id=\"user-content-kerl_build_plt\" class=\"anchor\" aria-label=\"Permalink: KERL_BUILD_PLT\" href=\"#kerl_build_plt\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eCreate a PLT file alongside the built release.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_USE_AUTOCONF\u003c/h3\u003e\u003ca id=\"user-content-kerl_use_autoconf\" class=\"anchor\" aria-label=\"Permalink: KERL_USE_AUTOCONF\" href=\"#kerl_use_autoconf\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eUse \u003ccode\u003eautoconf\u003c/code\u003e during build process.\nNB: Automatically enabled when using \u003ccode\u003eKERL_BUILD_BACKEND=git\u003c/code\u003e\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_BUILD_BACKEND\u003c/h3\u003e\u003ca id=\"user-content-kerl_build_backend\" class=\"anchor\" aria-label=\"Permalink: KERL_BUILD_BACKEND\" href=\"#kerl_build_backend\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eDefault value: \u003ccode\u003egit\u003c/code\u003e\nAcceptable values: \u003ccode\u003etarball\u003c/code\u003e, \u003ccode\u003egit\u003c/code\u003e\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ccode\u003etarball\u003c/code\u003e: Fetch erlang releases from erlang.org\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit\u003c/code\u003e: Fetch erlang releases from \u003ca href=\"#otp_github_url\"\u003e\u003ccode\u003e$OTP_GITHUB_URL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003eNB: Docs are only fetched when this is set to \u003ccode\u003etarball\u003c/code\u003e. To enable creation of docs when set to \u003ccode\u003egit\u003c/code\u003e, one must also set \u003ca href=\"#kerl_build_docs\"\u003e\u003ccode\u003e$KERL_BUILD_DOCS\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eNB: This setting has no effect when using \u003ccode\u003ekerl build git...\u003c/code\u003e, which invokes kerl to directly clone a git repository and build from there.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eOTP_GITHUB_URL\u003c/h3\u003e\u003ca id=\"user-content-otp_github_url\" class=\"anchor\" aria-label=\"Permalink: OTP_GITHUB_URL\" href=\"#otp_github_url\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eDefault value: \u003ccode\u003ehttps://github.com/erlang/otp\u003c/code\u003e\nAcceptable value: any github fork of OTP, e.g. \u003ccode\u003ehttps://github.com/basho/otp\u003c/code\u003e\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_BUILD_DOCS\u003c/h3\u003e\u003ca id=\"user-content-kerl_build_docs\" class=\"anchor\" aria-label=\"Permalink: KERL_BUILD_DOCS\" href=\"#kerl_build_docs\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eIf \u003ccode\u003e$KERL_BUILD_DOCS\u003c/code\u003e is set, kerl will create docs from the built erlang version regardless of origin (\u003ccode\u003etarball\u003c/code\u003e backend from erlang.org or via \u003ccode\u003ekerl build git\u003c/code\u003e, or via \u003ccode\u003egit\u003c/code\u003e backend).\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eIf \u003ccode\u003e$KERL_BUILD_DOCS\u003c/code\u003e is unset, kerl will only install docs when NOT installing a build created via \u003ccode\u003ekerl build git...\u003c/code\u003e, and according to \u003ccode\u003eKERL_INSTALL_HTMLDOCS\u003c/code\u003e and \u003ccode\u003eKERL_INSTALL_MANPAGES\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_INSTALL_MANPAGES\u003c/h3\u003e\u003ca id=\"user-content-kerl_install_manpages\" class=\"anchor\" aria-label=\"Permalink: KERL_INSTALL_MANPAGES\" href=\"#kerl_install_manpages\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eInstall man pages when not building from git source.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eIt's noteworthy that when not using \u003ccode\u003eKERL_BUILD_DOCS=yes\u003c/code\u003e, the docset that may be downloaded can be up to 120MB.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_INSTALL_HTMLDOCS\u003c/h3\u003e\u003ca id=\"user-content-kerl_install_htmldocs\" class=\"anchor\" aria-label=\"Permalink: KERL_INSTALL_HTMLDOCS\" href=\"#kerl_install_htmldocs\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eInstall HTML documentation when not building from git source.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eIt's noteworthy that when not using \u003ccode\u003eKERL_BUILD_DOCS=yes\u003c/code\u003e, the docset that may be downloaded can be up to 120MB.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_SASL_STARTUP\u003c/h3\u003e\u003ca id=\"user-content-kerl_sasl_startup\" class=\"anchor\" aria-label=\"Permalink: KERL_SASL_STARTUP\" href=\"#kerl_sasl_startup\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eBuild OTP to use SASL startup instead of minimal (default, when var is unset).\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eInstallation configuration\u003c/h2\u003e\u003ca id=\"user-content-installation-configuration\" class=\"anchor\" aria-label=\"Permalink: Installation configuration\" href=\"#installation-configuration\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eActivation configuration\u003c/h2\u003e\u003ca id=\"user-content-activation-configuration\" class=\"anchor\" aria-label=\"Permalink: Activation configuration\" href=\"#activation-configuration\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThe following apply when activating an installation (i.e. \u003ccode\u003e. ${KERL_DEFAULT_INSTALL_DIR}/19.2/activate\u003c/code\u003e).\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_ENABLE_PROMPT\u003c/h3\u003e\u003ca id=\"user-content-kerl_enable_prompt\" class=\"anchor\" aria-label=\"Permalink: KERL_ENABLE_PROMPT\" href=\"#kerl_enable_prompt\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eWhen set, automatically prefix the shell prompt with a section containing the erlang version (see \u003ca href=\"#kerl_prompt_format\"\u003e\u003ccode\u003e$KERL_PROMPT_FORMAT\u003c/code\u003e\u003c/a\u003e ).\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_PROMPT_FORMAT\u003c/h3\u003e\u003ca id=\"user-content-kerl_prompt_format\" class=\"anchor\" aria-label=\"Permalink: KERL_PROMPT_FORMAT\" href=\"#kerl_prompt_format\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eDefault: \u003ccode\u003e(%BUILDNAME%)\u003c/code\u003e\nAvailable variables:\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ccode\u003e%BUILDNAME%\u003c/code\u003e: Name of the kerl build (e.g. \u003ccode\u003emy_test_build_18.0\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e%RELEASE%\u003c/code\u003e: Name of the erlang release (e.g. \u003ccode\u003e19.2\u003c/code\u003e or \u003ccode\u003eR16B02\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003eThe format of the prompt section to add.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_DEFAULT_INSTALL_DIR\u003c/h3\u003e\u003ca id=\"user-content-kerl_default_install_dir\" class=\"anchor\" aria-label=\"Permalink: KERL_DEFAULT_INSTALL_DIR\" href=\"#kerl_default_install_dir\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eEffective when calling \u003ccode\u003ekerl install \u0026lt;build\u0026gt;\u003c/code\u003e with no installation location argument.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eIf unset, \u003ccode\u003e$PWD\u003c/code\u003e is used.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eIf set, install the build under \u003ccode\u003e$KERL_DEFAULT_INSTALL_DIR/${buildname}\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_DEPLOY_SSH_OPTIONS\u003c/h3\u003e\u003ca id=\"user-content-kerl_deploy_ssh_options\" class=\"anchor\" aria-label=\"Permalink: KERL_DEPLOY_SSH_OPTIONS\" href=\"#kerl_deploy_ssh_options\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eKERL_DEPLOY_RSYNC_OPTIONS\u003c/h3\u003e\u003ca id=\"user-content-kerl_deploy_rsync_options\" class=\"anchor\" aria-label=\"Permalink: KERL_DEPLOY_RSYNC_OPTIONS\" href=\"#kerl_deploy_rsync_options\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eOptions passed to \u003ccode\u003essh\u003c/code\u003e and \u003ccode\u003ersync\u003c/code\u003e during \u003ccode\u003ekerl deploy\u003c/code\u003e tasks.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eNote on .kerlrc\u003c/h2\u003e\u003ca id=\"user-content-note-on-kerlrc\" class=\"anchor\" aria-label=\"Permalink: Note on .kerlrc\" href=\"#note-on-kerlrc\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div 10000 \u003e\n\u003cp dir=\"auto\"\u003eSince .kerlrc is a dot file for \u003ccode\u003e/bin/sh\u003c/code\u003e, running shell commands inside the\n.kerlrc will affect the shell and environment variables for the commands being\nexecuted later. For example, the shell \u003ccode\u003eexport\u003c/code\u003e commands in .kerlrc will affect\n\u003cem\u003eyour login shell environment\u003c/em\u003e when activating \u003ccode\u003ecurl\u003c/code\u003e. Use with care.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eFish shell support\u003c/h2\u003e\u003ca id=\"user-content-fish-shell-support\" class=\"anchor\" aria-label=\"Permalink: Fish shell support\" href=\"#fish-shell-support\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ekerl has basic support for the fish shell.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eTo activate an installation:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"source /path/to/install/dir/activate.fish\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003esource /path/to/install/dir/activate.fish\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eDeactivation is the same as in other shells:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"kerl_deactivate\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003ekerl_deactivate\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ePlease note: if you've installed a build with an older version of kerl\n(1.2.0 older) it won't have the \u003ccode\u003eactivate.fish\u003c/code\u003e script.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eC shell support\u003c/h2\u003e\u003ca id=\"user-content-c-shell-support\" class=\"anchor\" aria-label=\"Permalink: C shell support\" href=\"#c-shell-support\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ekerl has basic support for the C shells (csh/tcsh/etc.).\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eTo activate an installation:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"source /path/to/install/dir/activate.csh\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003esource /path/to/install/dir/activate.csh\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThe activation script sources file .kerlrc.csh instead of .kerlrc.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eDeactivation is the same as in other shells:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"kerl_deactivate\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003ekerl_deactivate\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ePlease note: if you've installed a build with an older version of kerl\nit won't have the \u003ccode\u003eactivate.csh\u003c/code\u003e script.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eGlossary\u003c/h2\u003e\u003ca id=\"user-content-glossary\" class=\"anchor\" aria-label=\"Permalink: Glossary\" href=\"#glossary\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eHere are the abstractions kerl is handling:\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003ereleases\u003c/strong\u003e: Erlang/OTP releases from \u003ca href=\"https://erlang.org\" rel=\"nofollow\"\u003eerlang.org\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003ebuilds\u003c/strong\u003e: the result of configuring and compiling releases or git repositories\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003einstallations\u003c/strong\u003e: the result of deploying builds to filesystem locations (also referred to as \"sandboxes\")\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eCommands reference\u003c/h2\u003e\u003ca id=\"user-content-commands-reference\" class=\"anchor\" aria-label=\"Permalink: Commands reference\" href=\"#commands-reference\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003ebuild\u003c/h3\u003e\u003ca id=\"user-content-build\" class=\"anchor\" aria-label=\"Permalink: build\" href=\"#build\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"kerl build \u0026lt;release_code\u0026gt; \u0026lt;build_name\u0026gt;\nkerl build git \u0026lt;git_url\u0026gt; \u0026lt;git_version\u0026gt; \u0026lt;build_name\u0026gt;\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003ekerl build \u0026lt;release_code\u0026gt; \u0026lt;build_name\u0026gt;\nkerl build git \u0026lt;git_url\u0026gt; \u0026lt;git_version\u0026gt; \u0026lt;build_name\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eCreates a named build either from an official Erlang/OTP release or from a git repository.\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl build 19.2 19.2\n$ kerl build git https://github.com/erlang/otp dev 19.2_dev\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl build 19.2 19.2\n$ kerl build git https://github.com/erlang/otp dev 19.2_dev\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eTuning\u003c/h4\u003e\u003ca id=\"user-content-tuning-1\" class=\"anchor\" aria-label=\"Permalink: Tuning\" href=\"#tuning-1\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch5 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eConfigure options\u003c/h5\u003e\u003ca id=\"user-content-configure-options\" class=\"anchor\" aria-label=\"Permalink: Configure options\" href=\"#configure-options\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eYou can specify the configure options to use when building Erlang/OTP with the\n\u003ccode\u003eKERL_CONFIGURE_OPTIONS\u003c/code\u003e variable, either in your $HOME/.kerlrc file or\nprepending it to the command line. Full list of all options can be in\n\u003ca href=\"https://erlang.org/doc/installation_guide/INSTALL.html#Advanced-configuration-and-build-of-ErlangOTP_Configuring\" rel=\"nofollow\"\u003eErlang documentation\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ KERL_CONFIGURE_OPTIONS=--enable-hipe kerl build 19.2 19.2-hipe\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ KERL_CONFIGURE_OPTIONS=--enable-hipe kerl build 19.2 19.2-hipe\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch5 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eConfigure applications\u003c/h5\u003e\u003ca id=\"user-content-configure-applications\" class=\"anchor\" aria-label=\"Permalink: Configure applications\" href=\"#configure-applications\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eIf non-empty, you can specify the subset of applications to use when building\n(and subsequent installing) Erlang/OTP with the \u003ccode\u003eKERL_CONFIGURE_APPLICATIONS\u003c/code\u003e\nvariable, either in your $HOME/.kerlrc file or prepending it to the command\nline.\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ KERL_CONFIGURE_APPLICATIONS=\u0026quot;kernel stdlib sasl\u0026quot; kerl build R15B01 r15b01_minimal\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ KERL_CONFIGURE_APPLICATIONS=\"kernel stdlib sasl\" kerl build R15B01 r15b01_minimal\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch5 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eConfigure disable applications\u003c/h5\u003e\u003ca id=\"user-content-configure-disable-applications\" class=\"anchor\" aria-label=\"Permalink: Configure disable applications\" href=\"#configure-disable-applications\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eIf non-empty, you can specify the subset of applications to disable when\nbuilding (and subsequent installing) Erlang/OTP with the\n\u003ccode\u003eKERL_CONFIGURE_DISABLE_APPLICATIONS\u003c/code\u003e variable, either in your $HOME/.kerlrc\nfile or prepending it to the command line.\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ KERL_CONFIGURE_DISABLE_APPLICATIONS=\u0026quot;odbc\u0026quot; kerl build R16B02 r16b02_no_odbc\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ KERL_CONFIGURE_DISABLE_APPLICATIONS=\"odbc\" kerl build R16B02 r16b02_no_odbc\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch5 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eEnable autoconf\u003c/h5\u003e\u003ca id=\"user-content-enable-autoconf\" class=\"anchor\" aria-label=\"Permalink: Enable autoconf\" href=\"#enable-autoconf\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eYou can enable the use of \u003ccode\u003eautoconf\u003c/code\u003e in the build process setting\n\u003ccode\u003eKERL_USE_AUTOCONF=yes\u003c/code\u003e in your $HOME/.kerlrc file\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eNote\u003c/strong\u003e: \u003ccode\u003eautoconf\u003c/code\u003e is always enabled for git builds\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch5 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eUsing shell export command in .kerlrc\u003c/h5\u003e\u003ca id=\"user-content-using-shell-export-command-in-kerlrc\" class=\"anchor\" aria-label=\"Permalink: Using shell export command in .kerlrc\" href=\"#using-shell-export-command-in-kerlrc\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eConfigure variables which includes spaces such as those in \u003ccode\u003eCFLAGS\u003c/code\u003e cannot be\npassed on with \u003ccode\u003eKERL_CONFIGURE_OPTIONS\u003c/code\u003e. In such a case you can use shell\n\u003ccode\u003eexport\u003c/code\u003e command to define the environment variables for \u003ccode\u003e./configure\u003c/code\u003e. Note\nwell: this method has a side effect to change your shell execution environment\nafter activating a kerl installation of Erlang/OTP. Here is an example of\n.kerlrc for building Erlang/OTP for FreeBSD with clang compiler:\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"# for clang\nexport CC=clang CXX=clang CFLAGS=\u0026quot;-g -O3 -fstack-protector\u0026quot; LDFLAGS=\u0026quot;-fstack-protector\u0026quot;\n# compilation options\nKERL_CONFIGURE_OPTIONS=\u0026quot;--disable-native-libs --enable-vm-probes --with-dynamic-trace=dtrace --with-ssl=/usr/local --with-javac --enable-hipe --enable-kernel-poll --with-wx-config=/usr/local/bin/wxgtk2u-2.8-config --without-odbc --enable-threads --enable-sctp --enable-smp-support\u0026quot;\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e# for clang\nexport CC=clang CXX=clang CFLAGS=\"-g -O3 -fstack-protector\" LDFLAGS=\"-fstack-protector\"\n# compilation options\nKERL_CONFIGURE_OPTIONS=\"--disable-native-libs --enable-vm-probes --with-dynamic-trace=dtrace --with-ssl=/usr/local --with-javac --enable-hipe --enable-kernel-poll --with-wx-config=/usr/local/bin/wxgtk2u-2.8-config --without-odbc --enable-threads --enable-sctp --enable-smp-support\"\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eIn case you cannot access the default directory for temporary files (\u003ccode\u003e/tmp\u003c/code\u003e) or simply want them somewhere else, you can also provide your own directory with the variable \u003ccode\u003eTMP_DIR\u003c/code\u003e\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"export TMP_DIR=/your/custom/temporary/dir\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003eexport TMP_DIR=/your/custom/temporary/dir\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eBuilding documentation\u003c/h4\u003e\u003ca id=\"user-content-building-documentation\" class=\"anchor\" aria-label=\"Permalink: Building documentation\" href=\"#building-documentation\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ePrior to kerl 1.0, kerl always downloaded prepared documentation from erlang.org. Now if \u003ccode\u003eKERL_BUILD_DOCS=yes\u003c/code\u003e is set, kerl will build the man pages and HTML\ndocumentation from the source repository in which is working.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eNote\u003c/strong\u003e: This variable takes precedent over the other documentation parameters.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003einstall\u003c/h3\u003e\u003ca id=\"user-content-install\" class=\"anchor\" aria-label=\"Permalink: install\" href=\"#install\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"kerl install \u0026lt;build_name\u0026gt; [path]\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003ekerl install \u0026lt;build_name\u0026gt; [path]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eInstalls a named build to the specified filesystem location.\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl install 19.2 /srv/otp/19.2\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl install 19.2 /srv/otp/19.2\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eIf path is omitted the current working directory will be used. However, if\n\u003ccode\u003eKERL_DEFAULT_INSTALL_DIR\u003c/code\u003e is defined in ~/.kerlrc,\n\u003ccode\u003eKERL_DEFAULT_INSTALL_DIR/\u0026lt;build-name\u0026gt;\u003c/code\u003e will be used instead.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eInstall location restrictions\u003c/h4\u003e\u003ca id=\"user-content-install-location-restrictions\" class=\"anchor\" aria-label=\"Permalink: Install location restrictions\" href=\"#install-location-restrictions\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eWARNING\u003c/strong\u003e: kerl assumes the given installation directory is for its sole use.\nIf you later delete it with the \u003ccode\u003ekerl delete\u003c/code\u003e command, the whole directory will\nbe deleted, along with anything you may have added to it!\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eSo please only install kerl in an empty (or non-existant) directory.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eIf you attempt to install kerl in \u003ccode\u003e$HOME\u003c/code\u003e or \u003ccode\u003e.erlang\u003c/code\u003e or \u003ccode\u003e$KERL_BASE_DIR\u003c/code\u003e,\nthen kerl will give you an error and refuse to proceed. If you try to install\nkerl in a directory that exists and is not empty, kerl will give you an error.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eTuning\u003c/h4\u003e\u003ca id=\"user-content-tuning-2\" class=\"anchor\" aria-label=\"Permalink: Tuning\" href=\"#tuning-2\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch5 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eSASL startup\u003c/h5\u003e\u003ca id=\"user-content-sasl-startup\" class=\"anchor\" aria-label=\"Permalink: SASL startup\" href=\"#sasl-startup\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eYou can have SASL started automatically setting \u003ccode\u003eKERL_SASL_STARTUP=yes\u003c/code\u003e in your\n$HOME/.kerlrc file or prepending it to the command line.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch5 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eManpages installation\u003c/h5\u003e\u003ca id=\"user-content-manpages-installation\" class=\"anchor\" aria-label=\"Permalink: Manpages installation\" href=\"#manpages-installation\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eYou can have manpages installed automatically setting\n\u003ccode\u003eKERL_INSTALL_MANPAGES=yes\u003c/code\u003e in your $HOME/.kerlrc file or prepending it to the\ncommand line.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eNote\u003c/strong\u003e: for git-based builds, you want to set \u003ccode\u003eKERL_BUILD_DOCS=yes\u003c/code\u003e\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch5 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eHTML docs installation\u003c/h5\u003e\u003ca id=\"user-content-html-docs-installation\" class=\"anchor\" aria-label=\"Permalink: HTML docs installation\" href=\"#html-docs-installation\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eYou can have HTML docs installed automatically setting\n\u003ccode\u003eKERL_INSTALL_HTMLDOCS=yes\u003c/code\u003e in your $HOME/.kerlrc file or prepending it to the\ncommand line.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cem\u003eNote\u003c/em\u003e: for git-based builds, you want to set \u003ccode\u003eKERL_BUILD_DOCS=yes\u003c/code\u003e\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eDocumentation installation\u003c/h4\u003e\u003ca id=\"user-content-documentation-installation\" class=\"anchor\" aria-label=\"Permalink: Documentation installation\" href=\"#documentation-installation\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eMan pages will be installed to \u003ccode\u003e[path]/man\u003c/code\u003e and HTML docs will be installed in\n\u003ccode\u003e[path]/html\u003c/code\u003e. The kerl \u003ccode\u003eactivate\u003c/code\u003e script manipulates the MANPATH of the current\nshell such that \u003ccode\u003eman 3 gen_server\u003c/code\u003e or \u003ccode\u003eerl -man gen_server\u003c/code\u003e should work perfectly.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e(Do not fret - \u003ccode\u003ekerl_deactivate\u003c/code\u003e restores your shell's MANPATH to whatever its\noriginal value was.)\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003edeploy\u003c/h3\u003e\u003ca id=\"user-content-deploy\" class=\"anchor\" aria-label=\"Permalink: deploy\" href=\"#deploy\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"kerl deploy \u0026lt;[user@]host\u0026gt; [directory] [remote_directory]\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003ekerl deploy \u0026lt;[user@]host\u0026gt; [directory] [remote_directory]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eDeploys the specified installation to the given host and location.\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl deploy anotherhost /path/to/install/dir\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl deploy anotherhost /path/to/install/dir\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eIf remote_directory is omitted the specified directory will be used.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eIf directory and remote_directory is omitted the current working directory will be used.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cem\u003eNOTE\u003c/em\u003e: kerl assumes the specified host is accessible via \u003ccode\u003essh\u003c/code\u003e and \u003ccode\u003ersync\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eTuning\u003c/h4\u003e\u003ca id=\"user-content-tuning-3\" class=\"anchor\" aria-label=\"Permalink: Tuning\" href=\"#tuning-3\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch5 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eAdditional SSH options\u003c/h5\u003e\u003ca id=\"user-content-additional-ssh-options\" class=\"anchor\" aria-label=\"Permalink: Additional SSH options\" href=\"#additional-ssh-options\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eYou can have additional options given to \u003ccode\u003essh\u003c/code\u003e by setting them in the\n\u003ccode\u003eKERL_DEPLOY_SSH_OPTIONS\u003c/code\u003e variable in your $HOME/.kerlrc file or on the command\nline, e.g. \u003ccode\u003eKERL_DEPLOY_SSH_OPTIONS='-qx -o PasswordAuthentication=no'\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch5 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eAdditional RSYNC options\u003c/h5\u003e\u003ca id=\"user-content-additional-rsync-options\" class=\"anchor\" aria-label=\"Permalink: Additional RSYNC options\" href=\"#additional-rsync-options\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eYou can have additional options given to \u003ccode\u003ersync\u003c/code\u003e by setting them in the\n\u003ccode\u003eKERL_DEPLOY_RSYNC_OPTIONS\u003c/code\u003e variable in your $HOME/.kerlrc file or on the\ncommand line, e.g. \u003ccode\u003eKERL_DEPLOY_RSYNC_OPTIONS='--delete'\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eupdate\u003c/h3\u003e\u003ca id=\"user-content-update\" class=\"anchor\" aria-label=\"Permalink: update\" href=\"#update\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"kerl update releases\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003ekerl update releases\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eIf \u003ccode\u003eKERL_BUILD_BACKEND=tarball\u003c/code\u003e this command fetches the up-to-date list of OTP\nreleases from erlang.org.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eIf it is set to \u003ccode\u003eKERL_BUILD_BACKEND=git\u003c/code\u003e this command fetches an up-to-date\nlist of OTP tags from the official OTP github repository.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003elist\u003c/h3\u003e\u003ca id=\"user-content-list\" class=\"anchor\" aria-label=\"Permalink: list\" href=\"#list\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"kerl list \u0026lt;releases|builds|installations\u0026gt;\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003ekerl list \u0026lt;releases|builds|installations\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eLists the releases, builds or installations available.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003edelete\u003c/h3\u003e\u003ca id=\"user-content-delete\" class=\"anchor\" aria-label=\"Permalink: delete\" href=\"#delete\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"kerl delete build \u0026lt;build_name\u0026gt;\nkerl delete installation \u0026lt;path\u0026gt;\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003ekerl delete build \u0026lt;build_name\u0026gt;\nkerl delete installation \u0026lt;path\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eDeletes the specified build or installation.\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl delete build 19.2\nThe 19.2 build has been deleted\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl delete build 19.2\nThe 19.2 build has been deleted\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl delete installation /srv/otp/19.2\nThe installation in /srv/otp/19.2 has been deleted\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl delete installation /srv/otp/19.2\nThe installation in /srv/otp/19.2 has been deleted\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eactive\u003c/h3\u003e\u003ca id=\"user-content-active\" class=\"anchor\" aria-label=\"Permalink: active\" href=\"#active\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"kerl active\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003ekerl active\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ePrints the path of the currently active installation, if any.\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl active\nThe current active installation is:\n/srv/otp/19.2\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl active\nThe current active installation is:\n/srv/otp/19.2\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003estatus\u003c/h3\u003e\u003ca id=\"user-content-status\" class=\"anchor\" aria-label=\"Permalink: status\" href=\"#status\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"kerl status\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003ekerl status\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ePrints the available builds and installations as well as the currently active installation.\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl status\nAvailable builds:\n19.2,19.2\ngit,19.2_dev\n----------\nAvailable installations:\n19.2 /srv/otp/19.2\n19.2 /srv/otp/19.2_dev\n----------\nNo Erlang/OTP kerl installation is currently active\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl status\nAvailable builds:\n19.2,19.2\ngit,19.2_dev\n----------\nAvailable installations:\n19.2 /srv/otp/19.2\n19.2 /srv/otp/19.2_dev\n----------\nNo Erlang/OTP kerl installation is currently active\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003epath\u003c/h3\u003e\u003ca id=\"user-content-path\" class=\"anchor\" aria-label=\"Permalink: path\" href=\"#path\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"kerl path [installation]\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003ekerl path [installation]\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003ePrints the path of the currently active installation if one is active. When given an\ninstallation name, it will return the path to that installation location on disk.\nThis makes it useful for automation without having to run kerl's output through\nother tools to extract to path information.\u003c/p\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"$ kerl path\nNo active kerl-managed erlang installation\n\n$ kerl path 19.2.3\n/aux/erlangs/19.2.3\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003e$ kerl path\nNo active kerl-managed erlang installation\n\n$ kerl path 19.2.3\n/aux/erlangs/19.2.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003einstall-docsh\u003c/h3\u003e\u003ca id=\"user-content-install-docsh\" class=\"anchor\" aria-label=\"Permalink: install-docsh\" href=\"#install-docsh\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"kerl install-docsh\"\u003e\u003cpre class=\"notranslate\"\u003e\u003ccode\u003ekerl install-docsh\n\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eImportant note\u003c/strong\u003e: docsh only supports OTP versions 18 and later.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eInstall \u003ccode\u003eerl\u003c/code\u003e shell documentation access\nextension - \u003ca href=\"https://github.com/erszcz/docsh\"\u003edocsh\u003c/a\u003e.\nThis extends the shell with new helpers, which enable access to full\nfunction help (via \u003ccode\u003eh/{1,2,3}\u003c/code\u003e), function specs (\u003ccode\u003es/{1,2,3}\u003c/code\u003e) and type\ninformation (\u003ccode\u003et/{1,2,3}\u003c/code\u003e).\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eIf you already have an OTP installation, you will need to remove it and\nre-install it \u003cstrong\u003ebefore\u003c/strong\u003e you execute \u003ccode\u003einstall-docsh\u003c/code\u003e,\nsince docsh needs some environment variables of its own to be set up\nand managed by the activate script.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eActivating a docsh-enabled Erlang installation will try to create\na \u003ccode\u003e$HOME/.erlang\u003c/code\u003e symlink.\nIf this file exists (i.e. you have created it manually),\nplease consider removing it - otherwise, docsh won't work.\nDeactivating the kerl Erlang installation will remove the symlink.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eAlternatively, if the file exists and you have to keep it you can extend\nit with the content of \u003ca href=\"https://github.com/erszcz/docsh/blob/2d9843bce794e726f591bbca49c88aedbb435f8c/templates/dot.erlang\"\u003ea docsh-specific \u003ccode\u003e.erlang\u003c/code\u003e\u003c/a\u003e - this\ntask is left as an exercise for the reader - and export\n\u003ccode\u003eKERL_DOCSH_DOT_ERLANG=exists\u003c/code\u003e to silence unwanted warnings.\nThe \u003ca href=\"https://github.com/erszcz/docsh/blob/ecf35821610977e36b04c0c256990a5b0dab4870/doc/manual-setup.md\"\u003emanual setup guide\u003c/a\u003e will probably come in handy\nif you decide to take this route.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eCompiling crypto on Macs\u003c/h2\u003e\u003ca id=\"user-content-compiling-crypto-on-macs\" class=\"anchor\" aria-label=\"Permalink: Compiling crypto on Macs\" href=\"#compiling-crypto-on-macs\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eApple stopped shipping OpenSSL in OS X 10.11 (El Capitan) in favor of Apple's\nown SSL library. That makes using homebrew the most convenient way to install\nopenssl on macOS 10.11 or later. Additionally, homebrew \u003ca href=\"https://github.com/Homebrew/brew/pull/612\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/Homebrew/brew/pull/612/hovercard\"\u003estopped creating\u003c/a\u003e\nsymlinks from the homebrew installation directory to \u003ccode\u003e/usr/local\u003c/code\u003e, so in\nresponse to this, \u003cem\u003eif\u003c/em\u003e you're running El Capitan, Sierra, or High Sierra\n\u003cem\u003eand\u003c/em\u003e you have homebrew installed, \u003cem\u003eand\u003c/em\u003e you used it to install openssl,\nkerl will ask homebrew for the openssl installation prefix and configure Erlang\nto build with that location automatically.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003eImportant\u003c/strong\u003e: If you already have \u003ccode\u003e--with-ssl\u003c/code\u003e in your .kerlrc, kerl\nwill honor that instead, and will not do any automatic configuration.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eCompiling crypto on Red Hat systems\u003c/h2\u003e\u003ca id=\"user-content-compiling-crypto-on-red-hat-systems\" class=\"anchor\" aria-label=\"Permalink: Compiling crypto on Red Hat systems\" href=\"#compiling-crypto-on-red-hat-systems\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eRed Hat believes there's a \u003ca href=\"https://bugzilla.redhat.com/show_bug.cgi?id=319901#c2\" rel=\"nofollow\"\u003epatent\nissue\u003c/a\u003e and has disabled\nelliptic curve crypto algorithms in its distributions for over 10 years.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eThis causes Erlang builds to die when its compiling its own crypto libraries.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eAs a workaround, you can set \u003ccode\u003eCFLAGS=\"-DOPENSSL_NO_EC=1\"\u003c/code\u003e to tell the\nErlang crypto libraries to not build the elliptic curve cipher suite.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eThis issue applies to Fedora, Red Hat Enterprise Linux, CentOS and all\nderivatives of those distributions.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eThere is a \u003ca href=\"https://github.com/kerl/kerl/issues/212\" data-hovercard-type=\"issue\" data-hovercard-url=\"/kerl/kerl/issues/212/hovercard\"\u003etracking issue\u003c/a\u003e to\nautomatically set this compiler flag, if you wish to follow how kerl\nwill eventually deal with this issue.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChangelog\u003c/h2\u003e\u003ca id=\"user-content-changelog\" class=\"anchor\" aria-label=\"Permalink: Changelog\" href=\"#changelog\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e4 May 2020 - 2.0.0\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003cstrong\u003eImportant\u003c/strong\u003e: possible breaking change - releases are now fetched\nthrough github tags by default (#277)\u003c/li\u003e\n\u003cli\u003eFix documentation building, especially for inline REPL help (#336)\u003c/li\u003e\n\u003cli\u003eFix builds on Catalina (#337, #339) - if you are on Catalina and\nneed to build older Erlangs, you should downgrade your XCode to an\nearlier version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e3 March 2020 - 1.8.7\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eImplement version sorting (#319)\u003c/li\u003e\n\u003cli\u003eFix CI breakage (#327)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003eerl_call\u003c/code\u003e in the path (#330)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e16 September 2019 - 1.8.6\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eRemove almost all special cases for older macOS releases\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e25 September 2018 - 1.8.5\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eSupport Mojave builds (#301)\u003c/li\u003e\n\u003cli\u003eDisable SC2207 for Bash completion (#296)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e3 August 2018 - 1.8.4\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eSupport docsh 0.6.1 (#290)\u003c/li\u003e\n\u003cli\u003eUpdate docs about KERL_INSTALL_MANPAGES \u0026amp; HTML_DOCS (#292)\u003c/li\u003e\n\u003cli\u003eFix bash completion for Bash 3 (#295)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e3 July 2018 - 1.8.3\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eUpdate testing to include OTP 21 (#286)\u003c/li\u003e\n\u003cli\u003eFix an issue affecting CD_PATH during builds (#284)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e5 March 2018 - 1.8.2\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eApply zlib patch when building OTP 17-19. (#258)\u003c/li\u003e\n\u003cli\u003eAdd CircleCI (#246)\u003c/li\u003e\n\u003cli\u003eFix empty package name warning (#245)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e13 November 2017 - 1.8.1\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFix removing an installation by its name. (#244)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e8 November 2017 - 1.8.0\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eInclude support for installing and managing docsh (#213)\u003c/li\u003e\n\u003cli\u003eFix a function name typo (#241)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e23 October 2017 - 1.7.0\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eSuggest the proper activation script based on the shell you're using (#225)\u003c/li\u003e\n\u003cli\u003eAutomatically turn on built-in shell history when using an OTP release \u0026gt;=\n20 (#214)\u003c/li\u003e\n\u003cli\u003eWarn when a Linux does not appear to have a pre-requisite library/package\nto compile Erlang from source code. (#222)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e2 October 2017 - 1.6.0\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eSupport clang 9 and High Sierra command-line tools (CLT) on older Erlang\nbuilds. (#234)\u003c/li\u003e\n\u003cli\u003eFix a pointer error in wx on macOS/clang 9 (#235)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e25 May 2017 - 1.5.1\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eBug Fix: Remove spurious spaces (#209)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e24 May 2017 - 1.5.0\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003ePublished an OTP support policy, triage schedule, IRC channel\u003c/li\u003e\n\u003cli\u003eApply build patches for Perls \u0026gt;= 5.22 on older OTP releases (#198)\u003c/li\u003e\n\u003cli\u003eFix bad \u003ccode\u003eread\u003c/code\u003e usage (#200)\u003c/li\u003e\n\u003cli\u003eAdd a force flag for mv (#201)\u003c/li\u003e\n\u003cli\u003eUse a more portable way to get perl minor release version (#204)\u003c/li\u003e\n\u003cli\u003eForce 64 bit flag on macOS (#205)\u003c/li\u003e\n\u003cli\u003eFix documentation symlinks (#206)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e22 February 2017 - 1.4.2\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed a syntax error when comparing hash outputs on reconfigurations (#191)\u003c/li\u003e\n\u003cli\u003eAdded the path subcommand; enabled Travis-CI (#190)\u003c/li\u003e\n\u003cli\u003eFixed mistakenly omitted version string from past 2 releases.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e12 February 2017 - 1.4.1\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFix reading a checksum file for compile options (#180)\u003c/li\u003e\n\u003cli\u003eGet a little smarter about figuring out what apps to use\nwhen building a PLT file for dialyzer (#181)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e5 February 2017 - 1.4.0\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFix environment variable handling and a typo (#179)\u003c/li\u003e\n\u003cli\u003eOverhaul the README; document all environment variables (#178)\u003c/li\u003e\n\u003cli\u003eStore build configuration in a file. Enables detecting if configuration has\nchanged from build to build and also allows outputing build time options\nin \u003ccode\u003ekerl status\u003c/code\u003e (#177)\u003c/li\u003e\n\u003cli\u003eAssert perl exists before attempting build (#176); fixes issue #170\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e13 October 2016 - 1.3.4\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eUse a more portable way to restore PATH (#165)\u003c/li\u003e\n\u003cli\u003eExit if curl fails. Download files if they are 0 length. (#166)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e07 October 2016 - 1.3.3\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdd support for (T)CSH (#155)\u003c/li\u003e\n\u003cli\u003eIf homebrew is installed, make kerl check for a homebrew OpenSSL library path (#161)\u003c/li\u003e\n\ 10000 u003cli\u003eIf \u003ccode\u003e--enable-native-libs\u003c/code\u003e is active, make, clean and make again. (#163)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e20 July 2016 - 1.3.2\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eOptionally enhance the activation prompt (#149)\u003c/li\u003e\n\u003cli\u003eDo not permit installation into a location that's already installed (#150)\u003c/li\u003e\n\u003cli\u003eFix duplicate response from \u003ccode\u003ekerl prompt\u003c/code\u003e (fix #88) (#150)\u003c/li\u003e\n\u003cli\u003eDo not run if $HOME is not set. (fix #22) (#151)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e16 July 2016 - 1.3.1\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFix argument order in archive unpacking (#146)\u003c/li\u003e\n\u003cli\u003eWhen building, show output of unmet dependencies or other build prerequisites (#148)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e1 July 2016 - 1.3.0\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003ebasic fish shell support (#91)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e28 June 2016 - 1.2.0\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eMake curl output more robust if using a .curlrc (#137)\u003c/li\u003e\n\u003cli\u003eApply patches to build older Erlangs (#138)\u003c/li\u003e\n\u003cli\u003eAdd a command to output a version string (#140)\u003c/li\u003e\n\u003cli\u003eDo not assume success for metadata file writes (#142)\u003c/li\u003e\n\u003cli\u003eFix a grammar problem (#145)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e20 May 2016 - 1.1.1\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eRemove valid directory check when doing a remote deployment.\u003c/li\u003e\n\u003cli\u003eVarious get_otp_version() regex cleanup/fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e14 May 2016 - 1.1.0\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eRemove support for Mac OS X Lion. Stop setting CFLAGS for better compiler\noptimizations. (#132)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e14 May 2016 - 1.0.1\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eBe much more careful about installing into and removing directories. (#127)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eOTP_GITHUB_URL\u003c/code\u003e and \u003ccode\u003eKERL_BUILD_BACKEND\u003c/code\u003e controllable from .kerlrc (#130)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e2 May 2016 - 1.0\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eSupport builds from git tags (#122)\u003c/li\u003e\n\u003cli\u003eSupport documentation builds/installs from source code (#126)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/article\u003e","loaded":true,"timedOut":false,"errorMessage":null,"headerInfo":{"toc":[{"level":1,"text":"kerl ","anchor":"kerl--","htmlText":"kerl "},{"level":2,"text":"OTP Support Policy","anchor":"otp-support-policy","htmlText":"OTP Support Policy"},{"level":2,"text":"Triage cadence","anchor":"triage-cadence","htmlText":"Triage cadence"},{"level":2,"text":"IRC channel","anchor":"irc-channel","htmlText":"IRC channel"},{"level":2,"text":"Downloading","anchor":"downloading","htmlText":"Downloading"},{"level":2,"text":"How it works","anchor":"how-it-works","htmlText":"How it works"},{"level":2,"text":"Usage","anchor":"usage","htmlText":"Usage"},{"level":2,"text":"Building from a github fork","anchor":"building-from-a-github-fork","htmlText":"Building from a github fork"},{"level":2,"text":"Building from a git source","anchor":"building-from-a-git-source","htmlText":"Building from a git source"},{"level":2,"text":"Tuning","anchor":"tuning","htmlText":"Tuning"},{"level":2,"text":"Locations on disk","anchor":"locations-on-disk","htmlText":"Locations on disk"},{"level":3,"text":"KERL_BASE_DIR","anchor":"kerl_base_dir","htmlText":"KERL_BASE_DIR"},{"level":3,"text":"KERL_CONFIG","anchor":"kerl_config","htmlText":"KERL_CONFIG"},{"level":3,"text":"KERL_DOWNLOAD_DIR","anchor":"kerl_download_dir","htmlText":"KERL_DOWNLOAD_DIR"},{"level":3,"text":"KERL_BUILD_DIR","anchor":"kerl_build_dir","htmlText":"KERL_BUILD_DIR"},{"level":3,"text":"KERL_GIT_DIR","anchor":"kerl_git_dir","htmlText":"KERL_GIT_DIR"},{"level":2,"text":"Build configuration","anchor":"build-configuration","htmlText":"Build configuration"},{"level":3,"text":"KERL_CONFIGURE_OPTIONS","anchor":"kerl_configure_options","htmlText":"KERL_CONFIGURE_OPTIONS"},{"level":3,"text":"KERL_CONFIGURE_APPLICATIONS","anchor":"kerl_configure_applications","htmlText":"KERL_CONFIGURE_APPLICATIONS"},{"level":3,"text":"KERL_CONFIGURE_DISABLE_APPLICATIONS","anchor":"kerl_configure_disable_applications","htmlText":"KERL_CONFIGURE_DISABLE_APPLICATIONS"},{"level":3,"text":"KERL_BUILD_PLT","anchor":"kerl_build_plt","htmlText":"KERL_BUILD_PLT"},{"level":3,"text":"KERL_USE_AUTOCONF","anchor":"kerl_use_autoconf","htmlText":"KERL_USE_AUTOCONF"},{"level":3,"text":"KERL_BUILD_BACKEND","anchor":"kerl_build_backend","htmlText":"KERL_BUILD_BACKEND"},{"level":3,"text":"OTP_GITHUB_URL","anchor":"otp_github_url","htmlText":"OTP_GITHUB_URL"},{"level":3,"text":"KERL_BUILD_DOCS","anchor":"kerl_build_docs","htmlText":"KERL_BUILD_DOCS"},{"level":3,"text":"KERL_INSTALL_MANPAGES","anchor":"kerl_install_manpages","htmlText":"KERL_INSTALL_MANPAGES"},{"level":3,"text":"KERL_INSTALL_HTMLDOCS","anchor":"kerl_install_htmldocs","htmlText":"KERL_INSTALL_HTMLDOCS"},{"level":3,"text":"KERL_SASL_STARTUP","anchor":"kerl_sasl_startup","htmlText":"KERL_SASL_STARTUP"},{"level":2,"text":"Installation configuration","anchor":"installation-configuration","htmlText":"Installation configuration"},{"level":2,"text":"Activation configuration","anchor":"activation-configuration","htmlText":"Activation configuration"},{"level":3,"text":"KERL_ENABLE_PROMPT","anchor":"kerl_enable_prompt","htmlText":"KERL_ENABLE_PROMPT"},{"level":3,"text":"KERL_PROMPT_FORMAT","anchor":"kerl_prompt_format","htmlText":"KERL_PROMPT_FORMAT"},{"level":3,"text":"KERL_DEFAULT_INSTALL_DIR","anchor":"kerl_default_install_dir","htmlText":"KERL_DEFAULT_INSTALL_DIR"},{"level":3,"text":"KERL_DEPLOY_SSH_OPTIONS","anchor":"kerl_deploy_ssh_options","htmlText":"KERL_DEPLOY_SSH_OPTIONS"},{"level":3,"text":"KERL_DEPLOY_RSYNC_OPTIONS","anchor":"kerl_deploy_rsync_options","htmlText":"KERL_DEPLOY_RSYNC_OPTIONS"},{"level":2,"text":"Note on .kerlrc","anchor":"note-on-kerlrc","htmlText":"Note on .kerlrc"},{"level":2,"text":"Fish shell support","anchor":"fish-shell-support","htmlText":"Fish shell support"},{"level":2,"text":"C shell support","anchor":"c-shell-support","htmlText":"C shell support"},{"level":2,"text":"Glossary","anchor":"glossary","htmlText":"Glossary"},{"level":2,"text":"Commands reference","anchor":"commands-reference","htmlText":"Commands reference"},{"level":3,"text":"build","anchor":"build","htmlText":"build"},{"level":4,"text":"Tuning","anchor":"tuning-1","htmlText":"Tuning"},{"level":5,"text":"Configure options","anchor":"configure-options","htmlText":"Configure options"},{"level":5,"text":"Configure applications","anchor":"configure-applications","htmlText":"Configure applications"},{"level":5,"text":"Configure disable applications","anchor":"configure-disable-applications","htmlText":"Configure disable applications"},{"level":5,"text":"Enable autoconf","anchor":"enable-autoconf","htmlText":"Enable autoconf"},{"level":5,"text":"Using shell export command in .kerlrc","anchor":"using-shell-export-command-in-kerlrc","htmlText":"Using shell export command in .kerlrc"},{"level":4,"text":"Building documentation","anchor":"building-documentation","htmlText":"Building documentation"},{"level":3,"text":"install","anchor":"install","htmlText":"install"},{"level":4,"text":"Install location restrictions","anchor":"install-location-restrictions","htmlText":"Install location restrictions"},{"level":4,"text":"Tuning","anchor":"tuning-2","htmlText":"Tuning"},{"level":5,"text":"SASL startup","anchor":"sasl-startup","htmlText":"SASL startup"},{"level":5,"text":"Manpages installation","anchor":"manpages-installation","htmlText":"Manpages installation"},{"level":5,"text":"HTML docs installation","anchor":"html-docs-installation","htmlText":"HTML docs installation"},{"level":4,"text":"Documentation installation","anchor":"documentation-installation","htmlText":"Documentation installation"},{"level":3,"text":"deploy","anchor":"deploy","htmlText":"deploy"},{"level":4,"text":"Tuning","anchor":"tuning-3","htmlText":"Tuning"},{"level":5,"text":"Additional SSH options","anchor":"additional-ssh-options","htmlText":"Additional SSH options"},{"level":5,"text":"Additional RSYNC options","anchor":"additional-rsync-options","htmlText":"Additional RSYNC options"},{"level":3,"text":"update","anchor":"update","htmlText":"update"},{"level":3,"text":"list","anchor":"list","htmlText":"list"},{"level":3,"text":"delete","anchor":"delete","htmlText":"delete"},{"level":3,"text":"active","anchor":"active","htmlText":"active"},{"level":3,"text":"status","anchor":"status","htmlText":"status"},{"level":3,"text":"path","anchor":"path","htmlText":"path"},{"level":3,"text":"install-docsh","anchor":"install-docsh","htmlText":"install-docsh"},{"level":2,"text":"Compiling crypto on Macs","anchor":"compiling-crypto-on-macs","htmlText":"Compiling crypto on Macs"},{"level":2,"text":"Compiling crypto on Red Hat systems","anchor":"compiling-crypto-on-red-hat-systems","htmlText":"Compiling crypto on Red Hat systems"},{"level":2,"text":"Changelog","anchor":"changelog","htmlText":"Changelog"}],"siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fraghavkarol%2Fkerl"}}],"overviewFilesProcessingTime":0}},"appPayload":{"helpUrl":"https://docs.github.com","findFileWorkerPath":"/assets-cdn/worker/find-file-worker-263cab1760dd.js","findInFileWorkerPath":"/assets-cdn/worker/find-in-file-worker-2e7f7047116e.js","githubDevUrl":null,"enabled_features":{"copilot_workspace":null,"code_nav_ui_events":false,"react_blob_overlay":false,"accessible_code_button":true,"github_models_repo_integration":false}}}}
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kerl TravisCI build status CircleCI

Easy building and installing of Erlang/OTP instances.

Kerl aims to be shell agnostic and its only dependencies, excluding what's required to actually build Erlang/OTP, are curl and git.

All is done so that, once a specific release has been built, creating a new installation is as fast as possible.

OTP Support Policy

As of 2020 March 3, we are supporting OTP builds back to 20. Older builds may or may not work. We will advance release support as new releases of OTP become available.

Triage cadence

We triage kerl pull requests and issues at least once a month, typically on the fourth Tuesday of the month at 1 pm US/Pacific or 8 pm UTC.

IRC channel

We have a channel on freenode called #kerl - feel free to join and ask support or implementation questions any time. If no one is around, feel free to open an issue with your question or problem instead.

Downloading

If you are on MacOS, and using homebrew, you can install kerl, along with shell completion, by running:

$ brew install kerl

Alternatively, you can download the script directly from github:

$ curl -O https://raw.githubusercontent.com/kerl/kerl/master/kerl

Then ensure it is executable

$ chmod a+x kerl

and drop it in your $PATH

Optionally download and install kerl's bash_completion file from https://github.com/kerl/kerl/raw/master/bash_completion/kerl

Optionally download and install kerl's zsh-completion file from https://github.com/kerl/kerl/raw/master/zsh_completion/_kerl

How it works

Kerl keeps tracks of the releases it downloads, builds and installs, allowing easy installations to new destinations (without complete rebuilding) and easy switches between Erlang/OTP installations.

By default, kerl downloads source tarballs from the official repository tags but you can tell kerl to download from the official Erlang website by setting KERL_BUILD_BACKEND=tarball. However this website does not use HTTPS and is down more often than Github.

You can also install directly from a raw git repository by using the kerl build git <git_url> <git_version> <build_name> syntax.

Usage

List the available releases (kerl ignores releases < 10):

$ kerl list releases
R10B-0 R10B-10 R10B-1a R10B-2 R10B-3 R10B-4 R10B-5 R10B-6 R10B-7 R10B-8 R10B-9 R11B-0 R11B-1 R11B-2 R11B-3 R11B-4 R11B-5 R12B-0 R12B-1 R12B-2 R12B-3 R12B-4 R12B-5 R13A R13B01 R13B02-1 R13B02 R13B03 R13B04 R13B R14A R14B01 R14B02 R14B03 R14B04 R14B R14B_erts-5.8.1.1 R15B01 R15B02 R15B02_with_MSVCR100_installer_fix R15B03-1 R15B03 R15B R16A_RELEASE_CANDIDATE R16B01 R16B02 R16B03-1 R16B03 R16B 17.0-rc1 17.0-rc2 17.0 17.1 17.3 17.4 17.5 18.0 18.1 18.2 18.2.1 18.3 19.0 19.1 19.2
Run '/usr/local/bin/kerl update releases' to update this list from erlang.org

Pick your choice and build it:

$ kerl build 19.2 19.2
Verifying archive checksum...
Checksum verified (7cdd18a826dd7bda0ca46d1c3b2efca6)
Extracting source code
Building Erlang/OTP 19.2 (19.2), please wait...
Erlang/OTP 19.2 (19.2) has been successfully built

Note that named builds allow you to have different builds for the same Erlang/OTP release with different configure options:

$ KERL_BUILD_DOCS=yes kerl build 19.2 19.2-builtdocs
Verifying archive checksum...
Checksum verified (7cdd18a826dd7bda0ca46d1c3b2efca6)
Extracting source code
Building Erlang/OTP 19.2 (19.2-builtdocs), please wait...
Building docs...
Erlang/OTP 19.2 (19.2-builtdocs) has been successfully built

(Note that kerl uses the otp_build script internally, and ./otp_build configure disables HiPE on linux)

You can verify your build has been registered:

$ kerl list builds
19.2,19.2
19.2,19.2-builtdocs

Now install a build to some location:

$ kerl install 19.2 ~/kerl/19.2
Installing Erlang/OTP 19.2 (19.2) in /Users/sanmiguel/kerl/19.2...
You can activate this installation running the following command:
. /Users/sanmiguel/kerl/19.2/activate
Later on, you can leave the installation typing:
kerl_deactivate

Here again you can check the installation's been registered:

$ kerl list installations
19.2 /Users/sanmiguel/kerl/19.2

And at last activate it:

$ . /path/to/install/dir/activate

Activation will backup your $PATH, prepend it with the installation's bin/ directory. Thus it's only valid for the current shell session, and until you activate another installation or call kerl_deactivate.

You're now ready to work with your 19.2 installation:

$ erl -version
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 8.2

When you're done just call the shell function:

$ kerl_deactivate

Anytime you can check which installation, if any, is currently active with:

$ kerl active
The current active installation is:
/Users/sanmiguel/kerl/19.2

You can get an overview of the current kerl state with:

$ kerl status
Available builds:
19.2,19.2
----------
Available installations:
19.2 /Users/sanmiguel/kerl/19.2
----------
The current active installation is:
/Users/sanmiguel/kerl/19.2
There's no Dialyzer PLT for the active installation

You can delete builds and installations with the following commands:

$ kerl delete build 19.2
The 19.2 build has been deleted
$ kerl delete installation /path/to/install/dir
The installation in /path/to/install/dir has been deleted

You can easily deploy an installation to another host having ssh and rsync access with the following command:

$ kerl deploy anotherhost /path/to/install/dir
Cloning Erlang/OTP 19.2 (/path/to/install/dir) to anotherhost (/path/to/install/dir) ...
On anotherhost, you can activate this installation running the following command:
. /path/to/install/dir/activate
Later on, you can leave the installation typing:
kerl_deactivate

Building from a github fork

It is possible to build Erlang from a github fork, by using the KERL_BUILD_BACKEND=git and setting OTP_GITHUB_URL to the URL of the fork. For example, to build Basho's OTP fork:

$ export KERL_BUILD_BACKEND=git
$ export OTP_GITHUB_URL='https://github.com/basho/otp'
$ kerl update releases
The available releases are:
R13B03 R13B04 R14A R14B R14B01 R14B02 R14B03 R14B04 R15A R15B R15B01 R15B01_basho1 R15B01p R15B02 R15B03 R15B03-1 R16A_RELEASE_CANDIDATE R16B R16B01 R16B01_RC1 R16B02 R16B02_basho R16B02_basho10 R16B02_basho10rc1 R16B02_basho10rc2 R16B02_basho10rc3 R16B02_basho2 R16B02_basho3 R16B02_basho4 R16B02_basho5 R16B02_basho6 R16B02_basho7 R16B02_basho8 R16B02_basho9 R16B02_basho9rc1 R16B03 R16B03-1 R16B03_yielding_binary_to_term 17.0 17.0-rc1 17.0-rc2 17.0.1 17.0.2 17.1 17.1.1 17.1.2 17.2 17.2.1 17.2.2 17.3 17.3.1 17.3.2 17.3.3 17.3.4 17.4 17.4.1 17.5 17.5.1 17.5.2 17.5.3 17.5.4 17.5.5 17.5.6 17.5.6.1 17.5.6.2 17.5.6.3 17.5.6.4 17.5.6.5 17.5.6.6 17.5.6.7 17.5.6.8 17.5.6.9 18.0 18.0-rc1 18.0-rc2 18.0.1 18.0.2 18.0.3 18.1 18.1.1 18.1.2 18.1.3 18.1.4 18.1.5 18.2 18.2.1 18.2.2 18.2.3 18.2.4 18.2.4.1 18.3 18.3.1 18.3.2 18.3.3 18.3.4 18.3.4.1 19.0 19.0-rc1 19.0-rc2 19.0.2

From here (provided the KERL_BUILD_BACKEND and OTP_GITHUB_URL variables remain in place), it is possible to use kerl as normal:

$ kerl build R16B02_basho10 16b02-basho10

Building from a git source

You can build Erlang directly from a git repository with a command of the form kerl build git <git_url> <git_version> <build_name> where <git_version> can be either a branch, a tag or a commit id that will be passed to git checkout:

$ kerl build git https://github.com/erlang/otp.git dev 19.2_dev
Checking Erlang/OTP git repository from https://github.com/erlang/otp.git...
Building Erlang/OTP 19.2_dev from git, please wait...
Erlang/OTP 19.2_dev from git has been successfully built

Tuning

You can tune kerl using the .kerlrc file in your $HOME directory.

Locations on disk

KERL_BASE_DIR

Default: "$HOME"/.kerl Directory in which kerl will cache artefacts for building and installing.

KERL_CONFIG

Default: "$HOME"/.kerlrc File from which to source kerl configuration

KERL_DOWNLOAD_DIR

Default: ${KERL_BASE_DIR}/archives Directory in which to place downloaded artefacts

KERL_BUILD_DIR

Default: `${KERL_BASE_DIR}/builds Directory in which kerl will perform builds

KERL_GIT_DIR

Default: ${KERL_BASE_DIR}/gits Directory in which kerl will clone git repositories for building.

Build configuration

KERL_CONFIGURE_OPTIONS

Space-separated options to pass to configure when building OTP.

KERL_CONFIGURE_APPLICATIONS

Space-separated list of OTP applications which should exclusively be built.

KERL_CONFIGURE_DISABLE_APPLICATIONS

Space-separated list of OTP applications to disable during building.

KERL_BUILD_PLT

Create a PLT file alongside the built release.

KERL_USE_AUTOCONF

Use autoconf during build process. NB: Automatically enabled when using KERL_BUILD_BACKEND=git

KERL_BUILD_BACKEND

Default value: git Acceptable values: tarball, git

  • tarball: Fetch erlang releases from erlang.org
  • git: Fetch erlang releases from $OTP_GITHUB_URL

NB: Docs are only fetched when this is set to tarball. To enable creation of docs when set to git, one must also set $KERL_BUILD_DOCS.

NB: This setting has no effect when using kerl build git..., which invokes kerl to directly clone a git repository and build from there.

OTP_GITHUB_URL

Default value: https://github.com/erlang/otp Acceptable value: any github fork of OTP, e.g. https://github.com/basho/otp

KERL_BUILD_DOCS

If $KERL_BUILD_DOCS is set, kerl will create docs from the built erlang version regardless of origin (tarball backend from erlang.org or via kerl build git, or via git backend).

If $KERL_BUILD_DOCS is unset, kerl will only install docs when NOT installing a build created via kerl build git..., and according to KERL_INSTALL_HTMLDOCS and KERL_INSTALL_MANPAGES.

KERL_INSTALL_MANPAGES

Install man pages when not building from git source.

It's noteworthy that when not using KERL_BUILD_DOCS=yes, the docset that may be downloaded can be up to 120MB.

KERL_INSTALL_HTMLDOCS

Install HTML documentation when not building from git source.

It's noteworthy that when not using KERL_BUILD_DOCS=yes, the docset that may be downloaded can be up to 120MB.

KERL_SASL_STARTUP

Build OTP to use SASL startup instead of minimal (default, when var is unset).

Installation configuration

Activation configuration

The following apply when activating an installation (i.e. . ${KERL_DEFAULT_INSTALL_DIR}/19.2/activate).

KERL_ENABLE_PROMPT

When set, automatically prefix the shell prompt with a section containing the erlang version (see $KERL_PROMPT_FORMAT ).

KERL_PROMPT_FORMAT

Default: (%BUILDNAME%) Available variables:

  • %BUILDNAME%: Name of the kerl build (e.g. my_test_build_18.0)
  • %RELEASE%: Name of the erlang release (e.g. 19.2 or R16B02)

The format of the prompt section to add.

KERL_DEFAULT_INSTALL_DIR

Effective when calling kerl install <build> with no installation location argument.

If unset, $PWD is used.

If set, install the build under $KERL_DEFAULT_INSTALL_DIR/${buildname}.

KERL_DEPLOY_SSH_OPTIONS

KERL_DEPLOY_RSYNC_OPTIONS

Options passed to ssh and rsync during kerl deploy tasks.

Note on .kerlrc

Since .kerlrc is a dot file for /bin/sh, running shell commands inside the .kerlrc will affect the shell and environment variables for the commands being executed later. For example, the shell export commands in .kerlrc will affect your login shell environment when activating curl. Use with care.

Fish shell support

kerl has basic support for the fish shell.

To activate an installation:

source /path/to/install/dir/activate.fish

Deactivation is the same as in other shells:

kerl_deactivate

Please note: if you've installed a build with an older version of kerl (1.2.0 older) it won't have the activate.fish script.

C shell support

kerl has basic support for the C shells (csh/tcsh/etc.).

To activate an installation:

source /path/to/install/dir/activate.csh

The activation script sources file .kerlrc.csh instead of .kerlrc.

Deactivation is the same as in other shells:

kerl_deactivate

Please note: if you've installed a build with an older version of kerl it won't have the activate.csh script.

Glossary

Here are the abstractions kerl is handling:

  • releases: Erlang/OTP releases from erlang.org

  • builds: the result of configuring and compiling releases or git repositories

  • installations: the result of deploying builds to filesystem locations (also referred to as "sandboxes")

Commands reference

build

kerl build <release_code> <build_name>
kerl build git <git_url> <git_version> <build_name>

Creates a named build either from an official Erlang/OTP release or from a git repository.

$ kerl build 19.2 19.2
$ kerl build git https://github.com/erlang/otp dev 19.2_dev

Tuning

Configure options

You can specify the configure options to use when building Erlang/OTP with the KERL_CONFIGURE_OPTIONS variable, either in your $HOME/.kerlrc file or prepending it to the command line. Full list of all options can be in Erlang documentation.

$ KERL_CONFIGURE_OPTIONS=--enable-hipe kerl build 19.2 19.2-hipe
Configure applications

If non-empty, you can specify the subset of applications to use when building (and subsequent installing) Erlang/OTP with the KERL_CONFIGURE_APPLICATIONS variable, either in your $HOME/.kerlrc file or prepending it to the command line.

$ KERL_CONFIGURE_APPLICATIONS="kernel stdlib sasl" kerl build R15B01 r15b01_minimal
Configure disable applications

If non-empty, you can specify the subset of applications to disable when building (and subsequent installing) Erlang/OTP with the KERL_CONFIGURE_DISABLE_APPLICATIONS variable, either in your $HOME/.kerlrc file or prepending it to the command line.

$ KERL_CONFIGURE_DISABLE_APPLICATIONS="odbc" kerl build R16B02 r16b02_no_odbc
Enable autoconf

You can enable the use of autoconf in the build process setting KERL_USE_AUTOCONF=yes in your $HOME/.kerlrc file

Note: autoconf is always enabled for git builds

Using shell export command in .kerlrc

Configure variables which includes spaces such as those in CFLAGS cannot be passed on with KERL_CONFIGURE_OPTIONS. In such a case you can use shell export command to define the environment variables for ./configure. Note well: this method has a side effect to change your shell execution environment after activating a kerl installation of Erlang/OTP. Here is an example of .kerlrc for building Erlang/OTP for FreeBSD with clang compiler:

# for clang
export CC=clang CXX=clang CFLAGS="-g -O3 -fstack-protector" LDFLAGS="-fstack-protector"
# compilation options
KERL_CONFIGURE_OPTIONS="--disable-native-libs --enable-vm-probes --with-dynamic-trace=dtrace --with-ssl=/usr/local --with-javac --enable-hipe --enable-kernel-poll --with-wx-config=/usr/local/bin/wxgtk2u-2.8-config --without-odbc --enable-threads --enable-sctp --enable-smp-support"

In case you cannot access the default directory for temporary files (/tmp) or simply want them somewhere else, you can also provide your own directory with the variable TMP_DIR

export TMP_DIR=/your/custom/temporary/dir

Building documentation

Prior to kerl 1.0, kerl always downloaded prepared documentation from erlang.org. Now if KERL_BUILD_DOCS=yes is set, kerl will build the man pages and HTML documentation from the source repository in which is working.

Note: This variable takes precedent over the other documentation parameters.

install

kerl install <build_name> [path]

Installs a named build to the specified filesystem location.

$ kerl install 19.2 /srv/otp/19.2

If path is omitted the current working directory will be used. However, if KERL_DEFAULT_INSTALL_DIR is defined in ~/.kerlrc, KERL_DEFAULT_INSTALL_DIR/<build-name> will be used instead.

Install location restrictions

WARNING: kerl assumes the given installation directory is for its sole use. If you later delete it with the kerl delete command, the whole directory will be deleted, along with anything you may have added to it!

So please only install kerl in an empty (or non-existant) directory.

If you attempt to install kerl in $HOME or .erlang or $KERL_BASE_DIR, then kerl will give you an error and refuse to proceed. If you try to install kerl in a directory that exists and is not empty, kerl will give you an error.

Tuning

SASL startup

You can have SASL started automatically setting KERL_SASL_STARTUP=yes in your $HOME/.kerlrc file or prepending it to the command line.

Manpages installation

You can have manpages installed automatically setting KERL_INSTALL_MANPAGES=yes in your $HOME/.kerlrc file or prepending it to the command line.

Note: for git-based builds, you want to set KERL_BUILD_DOCS=yes

HTML docs installation

You can have HTML docs installed automatically setting KERL_INSTALL_HTMLDOCS=yes in your $HOME/.kerlrc file or prepending it to the command line.

Note: for git-based builds, you want to set KERL_BUILD_DOCS=yes

Documentation installation

Man pa 57A7 ges will be installed to [path]/man and HTML docs will be installed in [path]/html. The kerl activate script manipulates the MANPATH of the current shell such that man 3 gen_server or erl -man gen_server should work perfectly.

(Do not fret - kerl_deactivate restores your shell's MANPATH to whatever its original value was.)

deploy

kerl deploy <[user@]host> [directory] [remote_directory]

Deploys the specified installation to the given host and location.

$ kerl deploy anotherhost /path/to/install/dir

If remote_directory is omitted the specified directory will be used.

If directory and remote_directory is omitted the current working directory will be used.

NOTE: kerl assumes the specified host is accessible via ssh and rsync.

Tuning

Additional SSH options

You can have additional options given to ssh by setting them in the KERL_DEPLOY_SSH_OPTIONS variable in your $HOME/.kerlrc file or on the command line, e.g. KERL_DEPLOY_SSH_OPTIONS='-qx -o PasswordAuthentication=no'.

Additional RSYNC options

You can have additional options given to rsync by setting them in the KERL_DEPLOY_RSYNC_OPTIONS variable in your $HOME/.kerlrc file or on the command line, e.g. KERL_DEPLOY_RSYNC_OPTIONS='--delete'.

update

kerl update releases

If KERL_BUILD_BACKEND=tarball this command fetches the up-to-date list of OTP releases from erlang.org.

If it is set to KERL_BUILD_BACKEND=git this command fetches an up-to-date list of OTP tags from the official OTP github repository.

list

kerl list <releases|builds|installations>

Lists the releases, builds or installations available.

delete

kerl delete build <build_name>
kerl delete installation <path>

Deletes the specified build or installation.

$ kerl delete build 19.2
The 19.2 build has been deleted
$ kerl delete installation /srv/otp/19.2
The installation in /srv/otp/19.2 has been deleted

active

kerl active

Prints the path of the currently active installation, if any.

$ kerl active
The current active installation is:
/srv/otp/19.2

status

kerl status

Prints the available builds and installations as well as the currently active installation.

$ kerl status
Available builds:
19.2,19.2
git,19.2_dev
----------
Available installations:
19.2 /srv/otp/19.2
19.2 /srv/otp/19.2_dev
----------
No Erlang/OTP kerl installation is currently active

path

kerl path [installation]

Prints the path of the currently active installation if one is active. When given an installation name, it will return the path to that installation location on disk. This makes it useful for automation without having to run kerl's output through other tools to extract to path information.

$ kerl path
No active kerl-managed erlang installation

$ kerl path 19.2.3
/aux/erlangs/19.2.3

install-docsh

kerl install-docsh

Important note: docsh only supports OTP versions 18 and later.

Install erl shell documentation access extension - docsh. This extends the shell with new helpers, which enable access to full function help (via h/{1,2,3}), function specs (s/{1,2,3}) and type information (t/{1,2,3}).

If you already have an OTP installation, you will need to remove it and re-install it before you execute install-docsh, since docsh needs some environment variables of its own to be set up and managed by the activate script.

Activating a docsh-enabled Erlang installation will try to create a $HOME/.erlang symlink. If this file exists (i.e. you have created it manually), please consider removing it - otherwise, docsh won't work. Deactivating the kerl Erlang installation will remove the symlink.

Alternatively, if the file exists and you have to keep it you can extend it with the content of a docsh-specific .erlang - this task is left as an exercise for the reader - and export KERL_DOCSH_DOT_ERLANG=exists to silence unwanted warnings. The manual setup guide will probably come in handy if you decide to take this route.

Compiling crypto on Macs

Apple stopped shipping OpenSSL in OS X 10.11 (El Capitan) in favor of Apple's own SSL library. That makes using homebrew the most convenient way to install openssl on macOS 10.11 or later. Additionally, homebrew stopped creating symlinks from the homebrew installation directory to /usr/local, so in response to this, if you're running El Capitan, Sierra, or High Sierra and you have homebrew installed, and you used it to install openssl, kerl will ask homebrew for the openssl installation prefix and configure Erlang to build with that location automatically.

Important: If you already have --with-ssl in your .kerlrc, kerl will honor that instead, and will not do any automatic configuration.

Compiling crypto on Red Hat systems

Red Hat believes there's a patent issue and has disabled elliptic curve crypto algorithms in its distributions for over 10 years.

This causes Erlang builds to die when its compiling its own crypto libraries.

As a workaround, you can set CFLAGS="-DOPENSSL_NO_EC=1" to tell the Erlang crypto libraries to not build the elliptic curve cipher suite.

This issue applies to Fedora, Red Hat Enterprise Linux, CentOS and all derivatives of those distributions.

There is a tracking issue to automatically set this compiler flag, if you wish to follow how kerl will eventually deal with this issue.

Changelog

4 May 2020 - 2.0.0

  • Important: possible breaking change - releases are now fetched through github tags by default (#277)
  • Fix documentation building, especially for i 6120 nline REPL help (#336)
  • Fix builds on Catalina (#337, #339) - if you are on Catalina and need to build older Erlangs, you should downgrade your XCode to an earlier version.

3 March 2020 - 1.8.7

  • Implement version sorting (#319)
  • Fix CI breakage (#327)
  • Include erl_call in the path (#330)

16 September 2019 - 1.8.6

  • Remove almost all special cases for older macOS releases

25 September 2018 - 1.8.5

  • Support Mojave builds (#301)
  • Disable SC2207 for Bash completion (#296)

3 August 2018 - 1.8.4

  • Support docsh 0.6.1 (#290)
  • Update docs about KERL_INSTALL_MANPAGES & HTML_DOCS (#292)
  • Fix bash completion for Bash 3 (#295)

3 July 2018 - 1.8.3

  • Update testing to include OTP 21 (#286)
  • Fix an issue affecting CD_PATH during builds (#284)

5 March 2018 - 1.8.2

  • Apply zlib patch when building OTP 17-19. (#258)
  • Add CircleCI (#246)
  • Fix empty package name warning (#245)

13 November 2017 - 1.8.1

  • Fix removing an installation by its name. (#244)

8 November 2017 - 1.8.0

  • Include support for installing and managing docsh (#213)
  • Fix a function name typo (#241)

23 October 2017 - 1.7.0

  • Suggest the proper activation script based on the shell you're using (#225)
  • Automatically turn on built-in shell history when using an OTP release >= 20 (#214)
  • Warn when a Linux does not appear to have a pre-requisite library/package to compile Erlang from source code. (#222)

2 October 2017 - 1.6.0

  • Support clang 9 and High Sierra command-line tools (CLT) on older Erlang builds. (#234)
  • Fix a pointer error in wx on macOS/clang 9 (#235)

25 May 2017 - 1.5.1

  • Bug Fix: Remove spurious spaces (#209)

24 May 2017 - 1.5.0

  • Published an OTP support policy, triage schedule, IRC channel
  • Apply build patches for Perls >= 5.22 on older OTP releases (#198)
  • Fix bad read usage (#200)
  • Add a force flag for mv (#201)
  • Use a more portable way to get perl minor release version (#204)
  • Force 64 bit flag on macOS (#205)
  • Fix documentation symlinks (#206)

22 February 2017 - 1.4.2

  • Fixed a syntax error when comparing hash outputs on reconfigurations (#191)
  • Added the path subcommand; enabled Travis-CI (#190)
  • Fixed mistakenly omitted version string from past 2 releases.

12 February 2017 - 1.4.1

  • Fix reading a checksum file for compile options (#180)
  • Get a little smarter about figuring out what apps to use when building a PLT file for dialyzer (#181)

5 February 2017 - 1.4.0

  • Fix environment variable handling and a typo (#179)
  • Overhaul the README; document all environment variables (#178)
  • Store build configuration in a file. Enables detecting if configuration has changed from build to build and also allows outputing build time options in kerl status (#177)
  • Assert perl exists before attempting build (#176); fixes issue #170

13 October 2016 - 1.3.4

  • Use a more portable way to restore PATH (#165)
  • Exit if curl fails. Download files if they are 0 length. (#166)

07 October 2016 - 1.3.3

  • Add support for (T)CSH (#155)
  • If homebrew is installed, make kerl check for a homebrew OpenSSL library path (#161)
  • If --enable-native-libs is active, make, clean and make again. (#163)

20 July 2016 - 1.3.2

  • Optionally enhance the activation prompt (#149)
  • Do not permit installation into a location that's already installed (#150)
  • Fix duplicate response from kerl prompt (fix #88) (#150)
  • Do not run if $HOME is not set. (fix #22) (#151)

16 July 2016 - 1.3.1

  • Fix argument order in archive unpacking (#146)
  • When building, show output of unmet dependencies or other build prerequisites (#148)

1 July 2016 - 1.3.0

  • basic fish shell support (#91)

28 June 2016 - 1.2.0

  • Make curl output more robust if using a .curlrc (#137)
  • Apply patches to build older Erlangs (#138)
  • Add a command to output a version string (#140)
  • Do not assume success for metadata file writes (#142)
  • Fix a grammar problem (#145)

20 May 2016 - 1.1.1

  • Remove valid directory check when doing a remote deployment.
  • Various get_otp_version() regex cleanup/fixes

14 May 2016 - 1.1.0

  • Remove support for Mac OS X Lion. Stop setting CFLAGS for better compiler optimizations. (#132)

14 May 2016 - 1.0.1

  • Be much more careful about installing into and removing directories. (#127)
  • Make OTP_GITHUB_URL and KERL_BUILD_BACKEND controllable from .kerlrc (#130)

2 May 2016 - 1.0

  • Support builds from git tags (#122)
  • Support documentation builds/installs from source code (#126)

About

Easy building and installing of Erlang/OTP instances

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 100.0%
0