镜像自地址
https://github.com/JGZYES/ParlzPackageManger.git
已同步 2026-09-11 08:52:45 +08:00
install: self-extract deb (ar->data.tar.gz->/) and rpm (rpm2cpio->cpio->/) payload, no format conversion; alien only as last resort
这个提交包含在:
+10
-6
@@ -237,19 +237,23 @@ static int install_path(const char *path, const char *name) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (has_suffix(bname, ".deb") && os == OS_LINUX) {
|
if (has_suffix(bname, ".deb") && os == OS_LINUX) {
|
||||||
/* Debian native dpkg; elsewhere (e.g. CentOS) convert via alien */
|
/* Self-extract: dpkg native, else pull data.tar.gz via ar and unpack to /,
|
||||||
|
* else convert via alien. No format-conversion bloat required. */
|
||||||
snprintf(cmd, sizeof(cmd),
|
snprintf(cmd, sizeof(cmd),
|
||||||
"if command -v dpkg >/dev/null 2>&1; then sudo dpkg -i \"%s\"; "
|
"if command -v dpkg >/dev/null 2>&1; then sudo dpkg -i \"%s\"; "
|
||||||
|
"elif command -v ar >/dev/null 2>&1; then T=$(mktemp -d); "
|
||||||
|
"(cd \"$T\" && ar p \"%s\" data.tar.gz | tar -xzf -); sudo cp -a \"$T\"/. /; rm -rf \"$T\"; "
|
||||||
"elif command -v alien >/dev/null 2>&1; then sudo alien -i \"%s\"; "
|
"elif command -v alien >/dev/null 2>&1; then sudo alien -i \"%s\"; "
|
||||||
"else echo 'pmm: need alien to install .deb here (sudo apt-get install alien | sudo yum install alien)' 1>&2; exit 1; fi",
|
"else echo 'pmm: need dpkg, ar+tar or alien for .deb' 1>&2; exit 1; fi",
|
||||||
path, path);
|
path, path, path);
|
||||||
} else if (has_suffix(bname, ".rpm") && os == OS_LINUX) {
|
} else if (has_suffix(bname, ".rpm") && os == OS_LINUX) {
|
||||||
/* RPM-based native rpm; elsewhere (e.g. Debian) convert via alien */
|
/* Self-extract: rpm native, else rpm2cpio+cpio the payload into /, else alien. */
|
||||||
snprintf(cmd, sizeof(cmd),
|
snprintf(cmd, sizeof(cmd),
|
||||||
"if command -v rpm >/dev/null 2>&1; then sudo rpm -Uvh \"%s\"; "
|
"if command -v rpm >/dev/null 2>&1; then sudo rpm -Uvh \"%s\"; "
|
||||||
|
"elif command -v rpm2cpio >/dev/null 2>&1; then sudo rpm2cpio \"%s\" | (cd / && sudo cpio -idm --quiet); "
|
||||||
"elif command -v alien >/dev/null 2>&1; then sudo alien -i \"%s\"; "
|
"elif command -v alien >/dev/null 2>&1; then sudo alien -i \"%s\"; "
|
||||||
"else echo 'pmm: need alien to install .rpm here (sudo apt-get install alien)' 1>&2; exit 1; fi",
|
"else echo 'pmm: need rpm, rpm2cpio+cpio or alien for .rpm' 1>&2; exit 1; fi",
|
||||||
path, path);
|
path, path, path);
|
||||||
} else if (has_suffix(bname, ".apk") && os == OS_LINUX) {
|
} else if (has_suffix(bname, ".apk") && os == OS_LINUX) {
|
||||||
/* Alpine: apk add if available, else extract */
|
/* Alpine: apk add if available, else extract */
|
||||||
snprintf(cmd, sizeof(cmd),
|
snprintf(cmd, sizeof(cmd),
|
||||||
|
|||||||
在新工单中引用
屏蔽一个用户