Skip to content

Feature Request: Option to build from source when requested #76

@anoduck

Description

@anoduck

Summary

In order to meet the same standards as similar programming language version management programs, choosenim must provide an option to pull from source and compile itself, even if a prebuilt binary is available. It should, in the least, be able to do this for Linux distributions. If a known bug exists which effects a specific Linux distribution, then choosenim should perform the compilation automatically.

Rationale

When installing Nim for the first time using curl https://nim-lang.org/choosenim/init.sh -sSf | sh, it installs without error, BUT nimble is not functional. Commands to refresh or install packages end abruptly with the error message, "SIGILL: Illegal Operation". Which is commonly referred to as a broken installation.

The resolution for this issue is to download the source code, compile nim manually, and install it on the system. Although, this creates other issues that could easily be overlooked. Choosenim does not provide an option to uninstall itself easily, which to an unexperienced user would result in there being two different nim installations on his system. This has the potential to cause conflicts in the future.

Furthermore, in its current form, commands given to choosenim result in choosenim simply searching to see if a binary release is available, and if so, installs the binary. When it is requested to install the stable release, this will result in installing the same version that caused the error in the first place.

Summary

As long as Nim still possesses difficulties with OpenSSL versions, users will have to compile their own installation of Nim, and as long as they are required to do this, they will lack the ability to easily maintain their version with the newest release.

System Info

System: Kali Linux Rolling Release (Debian Sid)
Shell: Zsh
Nim Version: 2.2.4
Referencing Issues:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions