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
-
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).
-
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()).
-
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.
-
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.
-
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.
The current installation process for
nuruhas 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
File Placement in
/usr/local/bin.tar.gzrelease package includes thenurubinary,LICENSE, andREADME.md./usr/local/bin./usr/local/binshould only contain binaries; other files should be placed in appropriate directories (e.g.,/usr/share/doc/nuru/for documentation).License Display
LICENSEin/usr/local/bin, the CLI could display license details when prompted (e.g.,nuru --license), or we can use the Python’s approach(license()).Termux Installation Path
/usr/share/and links them via.bashrc./usr/bin, which would allow execution without modifying.bashrc.Improving the Linux Installation Process
sh.nuruprogramming.org), similar to Rust’ssh.rustup.rs.Uninstallation Process
nuruhas no formal uninstallation script, requiring manual removal of files.nuru uninstallcommand or a script to cleanly remove installed files.Proposed Solutions
/usr/binon Termux, removing dependency on.bashrc.