3个版本
0.1.2 | 2023年2月4日 |
---|---|
0.1.1 | 2023年1月26日 |
0.1.0 | 2023年1月25日 |
#539 in Unix API
每月 28 次下载
56KB
1K SLoC
deb-rust
一个用于构建和读取Deb软件包的纯Rust库。
deb-rust提供了一种易于使用的程序化接口,用于读取和写入Deb软件包。它目前仅支持二进制deb软件包。
示例
写入
use std::fs::File;
use deb_rust::*;
use deb_rust::binary::*;
fn main() -> std::io::Result<()> {
let mut package = DebPackage::new("example");
package = package
.set_version("0.1.0")
.set_description("deb-rust example")
.set_architecture(DebArchitecture::Amd64)
.with_depend("bash")
.with_file(DebFile::from_path(
"target/release/example",
"/usr/bin/example",
)?);
package.build()?.write(File::create("example.deb")?)?;
Ok(())
}
读取
use std::fs;
use std::fs::File;
use deb_rust::*;
use deb_rust::binary::*;
fn main() -> std::io::Result<()> {
let package = DebPackage::from(File::open("example.deb")?)?;
let name = package.name();
let version = package.version();
for file in package.files() {
fs::write(file.path(), file.contents())?;
}
Ok(())
}
读取和写入
use std::fs::File;
use deb_rust::*;
use deb_rust::binary::*;
fn main() -> std::io::Result<()> {
let mut package = DebPackage::from(File::open("example.deb")?)?;
package = package
.set_name("rename")
.set_description("some example idfk");
package.build()?.write(File::create("new.deb")?)?;
Ok(())
}
依赖项
~8–18MB
~245K SLoC