#user #user-service #install #step #linux #systems #up

service-install

为 Linux 系统上的用户提供方便的安装方法

8 个不稳定版本 (3 个破坏性更新)

新版本 0.4.3 2024 年 8 月 4 日
0.4.2 2024 年 4 月 21 日
0.3.0 2024 年 4 月 9 日
0.2.0 2024 年 4 月 8 日
0.1.1 2024 年 4 月 7 日

3#user-service

Download history 146/week @ 2024-04-18 16/week @ 2024-04-25 4/week @ 2024-05-02 1/week @ 2024-05-16 2/week @ 2024-05-23 3/week @ 2024-05-30 2/week @ 2024-06-06 1/week @ 2024-06-27 9/week @ 2024-07-04 3/week @ 2024-07-25 91/week @ 2024-08-01

每月 94 次下载

MIT 许可证

125KB
3K SLoC

** 方便用户安装**

Crates.io Crates.io API License

注意,这是一个早期版本,可能存在错误

这个crate提供构建自包含二进制文件的安装程序的构建块,无需运行时依赖。这样的安装程序为技术不高的用户提供了一种简单的方法来设置程序。它不是包管理器的完整替代品。例如,无法提供更新。但是,自己构建安装程序的工作量比尝试将应用程序集成到所有Linux包管理器中要小得多。它也适用于非公开的工具。

功能

  • 设置一个在启动或计划中运行应用程序的服务
  • 逐步执行安装步骤或一次性执行
  • 打印每个步骤或一次性打印(或创建一个tui/prompt!)
  • 失败时回滚
  • 配置安装位置或自动找到一个合适的安装位置
  • 指定服务应以哪个用户身份运行
  • 撤销安装,卸载服务和删除文件

示例

将当前程序安装为名为 cli 的用户服务,每天 10:42 运行。这不需要超级用户/管理员权限。

use service_install::{install_user, schedule::Schedule};
use time::Time;

fn main() {
    let schedule = Schedule::Daily(Time::from_hms(10, 42, 00).unwrap());
    let done = install_user!()
        .current_exe()
        .unwrap()
        .name("cli")
        .on_schedule(schedule)
        .prepare_install()
        .unwrap()
        .install()
        .unwrap();
}

有关更多详细示例(例如,工作Tui/Prompt),请参阅

未来工作

  • 使预构建的TUI/Prompt更具可定制性。
  • Windows 支持(这里可能需要一些帮助,我自己不是大Windows用户)

贡献

请告诉我您想看到什么!欢迎PR和问题!

依赖关系

~2–29MB
~419K SLoC