Create deb_transfer.md
This commit is contained in:
parent
d31e4e7fdc
commit
af973b2e4a
|
|
@ -0,0 +1,64 @@
|
||||||
|
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"
|
||||||
|
```
|
||||||
Loading…
Reference in New Issue