Nami: A clean and tidy decentralized package manager
Updated at: 2023-11-01
Why
Historically, software distribution on Linux initially relied on sending emails. C language, which was claimed to be cross-platform, was used back then. However, the cross-platform characteristic referred to the code itself. Due to the inconvenience of statically compiling libc6 as well as considerations for disk size, users had to compile the code themselves. Software upgrades were often sent as patches via email.
Later on, different Linux distributions began maintaining centralized software repositories, where software was pre-compiled or compiled on-demand based on the specific system version. Since software authors usually do not maintain software packages themselves, volunteers were usually responsible for package maintenance. When a software author releases a new version, the package maintainer would also update the package accordingly. Therefore, it is common to encounter outdated packages when downloading from centralized repositories.
Nami: A Clean and Decentralized Package Manager
As a result, Nami was born. It is a clean and decentralized package manager.
- Nami only downloads software from official channels provided by software authors.
- Nami does not perform compilation, allowing users to focus on being users instead of dealing with compilation errors and dependency issues that only authors can understand.
- Nami prefers independent, static executable files without dependencies. During installation, only the standalone binary files are kept, while other miscellaneous files are discarded, such as 7z.
- Nami also supports software packaged in archives. For example, some software may require the retention of certain library files, such as go.
- The package maintenance script only needs to be written once, and it does not need to be updated when the software author releases an upgrade.
- Writing package maintenance scripts is simple and flexible. Knowledge of Linux commands is all you need to write scripts. tengo and jb make script writing more convenient.
Let's get started
Get it on GitHub