Debian-Pi-Aarch64/docs/notes/deb_transfer.md

65 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

deepin_deb_transfer_script
From https://www.hu60.cn/q.php/bbs.topic.101335.html by 老虎会游泳
```
#!/bin/bash
# 把deepin deb包重打包为debian deb包以解决在debian/ubuntu等非deepin/uos发行版中安装后没有图标的问题
set -e
deb="$1"
debDir="$2"
if [ "$deb" = "" ] || [ "$debDir" = "" ] || ! [ "$UID" = "0" ]; then
echo -e "Usage:\n\tsudo $0 <path-of-deb> <dir-to-save-converted-deb>"
echo -e "Example:\n\tsudo $0 /home/hu60/net.winegame.client_0.5.7.1_amd64.deb /home/hu60/debian"
exit
fi
rm -rf /tmp/deepin-packge-to-debian-package
mkdir -p /tmp/deepin-packge-to-debian-package/extract/DEBIAN
echo -e "Extract deb to:\n\t/tmp/deepin-packge-to-debian-package/extract/"
dpkg -X "$deb" /tmp/deepin-packge-to-debian-package/extract >/dev/null
dpkg -e "$deb" /tmp/deepin-packge-to-debian-package/extract/DEBIAN
if [ -d "/tmp/deepin-packge-to-debian-package/extract/opt/apps/" ]; then
packageName="$(ls /tmp/deepin-packge-to-debian-package/extract/opt/apps/)"
echo -e "Package name:\n\t$packageName"
linkDir() {
find "/tmp/deepin-packge-to-debian-package/extract$1/" -type f | \
sed 's#^/tmp/deepin-packge-to-debian-package/extract##' | \
while read src; do
dst="$(echo "$src" | sed "s#^$1/#$2/#")"
echo -e "\t$src -> $dst"
mkdir -p "/tmp/deepin-packge-to-debian-package/extract$(dirname "$dst")"
ln -s "$src" "/tmp/deepin-packge-to-debian-package/extract$dst"
done
}
echo "Link entries:"
if [ -d "/tmp/deepin-packge-to-debian-package/extract/opt/apps/$packageName/entries/" ]; then
ls "/tmp/deepin-packge-to-debian-package/extract/opt/apps/$packageName/entries/" | while read dir; do
linkDir "/opt/apps/$packageName/entries/$dir" "/usr/share/$dir"
done
fi
fi
echo "Cleaning depends..."
sed -i 's/deepin-elf-verify[^,]*,\s*//' /tmp/deepin-packge-to-debian-package/extract/DEBIAN/control
sed -i '/^Depends: deepin-elf-verify[^,]*$/d' /tmp/deepin-packge-to-debian-package/extract/DEBIAN/control
echo "Repacking..."
baseName="$(basename "$deb")"
dpkg-deb -b "/tmp/deepin-packge-to-debian-package/extract" "$debDir/$baseName"
echo "Cleaning..."
echo -e "\trm -rf /tmp/deepin-packge-to-debian-package/"
rm -rf /tmp/deepin-packge-to-debian-package/
echo -n -e "Package:\n\t"
ls -lh "$debDir/$baseName"
```