Nuru icon indicating copy to clipboard operation
Nuru copied to clipboard

Improve Installation Structure & Uninstallation Process

Open isaka-james opened this issue 10 months ago • 0 comments

The current installation process for nuru has a few structural issues that could be improved for better adherence to Linux standards and professionalism. This issue highlights necessary changes regarding binary placement, licensing, documentation, and uninstallation.

Current Observations & Issues

  1. File Placement in /usr/local/bin

    • The .tar.gz release package includes the nuru binary, LICENSE, and README.md.
    • During installation, all these files are moved to /usr/local/bin.
    • Issue: /usr/local/bin should only contain binaries; other files should be placed in appropriate directories (e.g., /usr/share/doc/nuru/ for documentation).
  2. License Display

    • Instead of placing LICENSE in /usr/local/bin, the CLI could display license details when prompted (e.g., nuru --license), or we can use the Python’s approach(license()).
  3. Termux Installation Path

    • Currently, the installation script places files in /usr/share/ and links them via .bashrc.
    • Issue: This is not a standard practice. Instead, the binary should be installed directly into /usr/bin, which would allow execution without modifying .bashrc.
  4. Improving the Linux Installation Process

    • A more streamlined installation method could be implemented by hosting an installation script on a subdomain (e.g., sh.nuruprogramming.org), similar to Rust’s sh.rustup.rs.
  5. Uninstallation Process

    • Currently, nuru has no formal uninstallation script, requiring manual removal of files.
    • Suggestion: Provide a nuru uninstall command or a script to cleanly remove installed files.

Proposed Solutions

  • Refactor the installation script to place non-binary files in appropriate directories.
  • Modify the script to install directly to /usr/bin on Termux, removing dependency on .bashrc.
  • Set up a subdomain for a cleaner installation process.
  • Implement an uninstallation script for proper cleanup.

isaka-james avatar Feb 23 '25 13:02 isaka-james