[UOS] UOS无法使用dpkg安装带zst格式的deb安装包, 可以这样试试
Tofloor
poster avatar
SASEDI
deepin
2025-01-21 21:57
Author

UOS无法安装带zst压缩的deb包,可以通过解压后重新打包成deb后重新安装

微信图片_2025-01-21_211740_228.png

1.在文件所在目录下打开终端并获得root权限

截图_选择区域_20250121212953.png

2.安装zstd解压工具

sudo apt-get install zstd

截图_选择区域_20250121213203.png

我这里已经安装过了

3.使用ar提取原来deb的文件

ar x [原来的安装包.deb]

截图_选择区域_20250121213413.png

提取到这三个文件

4.解压里面的.zst文件

zstd -d control.tar.zst -o control.tar
zstd -d data.tar.zst -o data.tar

截图_选择区域_20250121213736.png

解压出两个tar文件

5.继续进行解压tar文件到两个文件夹内

mkdir control data
tar -xf control.tar -C control
tar -xf data.tar -C data

截图_选择区域_20250121214009.png

6.重新打包gzip格式的.gz文件

tar czf control.tar.gz -C control .
tar czf data.tar.gz -C data .

截图_选择区域_20250121220731.png

截图_选择区域_20250121214401.png

7.重新构建deb安装包

ar rcs anzhuangbao.deb debian-binary control.tar.gz data.tar.gz

8.重新安装deb包(dpkg -i)

sudo dpkg -i anzhuangbao.deb

截图_选择区域_20250121215208.png

别忘了需要root权限

Reply Favorite View the author
All Replies
穿西装的万斯在统亻言
deepin
Backbone of ecological co-construction group
2025-01-22 02:34
#1

不错,

我觉得你可以做成一个带gui界面的工具,实现重新打包。

Reply View the author
liuhongwei11
deepin
2025-01-22 08:10
#2

原来还可以这样操作啊,学习收藏了,感谢分享!

Reply View the author
yippeeghost
deepin
2025-01-22 09:38
#3

之前论坛里有个脚本挺好用的:

vi ~/installDeb.sh

#!/bin/bash

suffix=".deb"

if [[ ! -n "$1"  ]]; then
    echo 'deb file must not be empty!'
    exit
fi
if [[ "$1" != *"$suffix"  ]]; then
    echo 'file type must be deb!'
    exit
fi
echo "Extract $1 from the archive"
ar x $1
echo "Uncompress zstd $1 an re-compress them using xz"
zstd -d < control.tar.zst | xz > control.tar.xz
zstd -d < data.tar.zst | xz > data.tar.xz
echo "Re-create the Debian package in /tmp/$1"
ar -m -c -a sdsd /tmp/$1 debian-binary control.tar.xz data.tar.xz
echo 'Clean up'
rm debian-binary control.tar.xz data.tar.xz control.tar.zst data.tar.zst

echo "install $1"
sudo apt install /tmp/$1

chmod +x ~/installDeb.sh

./installDeb.sh xxx.deb

Reply View the author