apt install并不会选择软件包的安装路径,这个路径是在软件包里面记录好路径的相关信息的。一个deb包,只是一堆文件、文件夹的压缩包而已,而这个包里面记录了这些文件、文件夹应该安装的位置。因此,简单点说,你不能够在apt install的命令中选择deb包的安装位置,因为这个位置信息是在包里写好的,并不是通过apt install命令来指派的。
实际上,deb包里的路径是跟你系统的gnu/linux路径相关的,所以一般来讲,/usr/share/bin,man帮助页、图标这些都位置都是不能够改变的。
如果要查看deb安装的目录信息,可以通过dpkg-deb -c 来查看,不过,首先你要把这个包下载下来才能够看到:
dpkg-deb -c todesk-v4.3.1.0-amd64.deb
drwxrwxr-x root/root 0 2022-05-17 18:36 ./
drwxrwxr-x root/root 0 2022-05-17 18:36 ./opt/
drwxrwxr-x root/root 0 2022-05-17 18:43 ./opt/todesk/
drwxrwxr-x root/root 0 2022-05-17 18:36 ./opt/todesk/res/
-rw-rw-r-- root/root 461913 2022-05-17 18:36 ./opt/todesk/res/fake.png
drwxrwxr-x root/root 0 2022-08-24 12:25 ./opt/todesk/bin/
-rwxrwxr-x root/root 1480 2022-06-13 17:34 ./opt/todesk/bin/libnvidia-encode.so.1
-rwxrwxr-x root/root 21330048 2022-08-24 12:25 ./opt/todesk/bin/ToDesk_Session
-rwxrwxr-x root/root 186912 2022-08-24 12:25 ./opt/todesk/bin/libva-x11.so.2
-rwxrwxr-x root/root 598192 2022-08-24 12:25 ./opt/todesk/bin/libva.so.2
-rwxrwxr-x root/root 70336 2022-08-24 12:25 ./opt/todesk/bin/libmfx.so.1
-rwxrwxr-x root/root 38676752 2022-08-24 12:25 ./opt/todesk/bin/ToDesk
-rwxrwxr-x root/root 298856 2022-08-24 12:25 ./opt/todesk/bin/libglut.so.3
-rwxrwxr-x root/root 669584 2022-06-13 17:34 ./opt/todesk/bin/libGLEW.so.2
-rwxrwxr-x root/root 56912 2022-08-24 12:25 ./opt/todesk/bin/libva-drm.so.2
-rwxrwxr-x root/root 43947712 2022-08-24 12:25 ./opt/todesk/bin/libzrtc.so
-rwxrwxr-x root/root 666472 2022-08-24 12:25 ./opt/todesk/bin/libigdgmm.so.12
-rwxrwxr-x root/root 35237872 2022-08-24 12:25 ./opt/todesk/bin/iHD_drv_video.so
-rwxrwxr-x root/root 21411904 2022-08-24 12:25 ./opt/todesk/bin/ToDesk_Service
-rwxrwxr-x root/root 15890688 2022-08-24 12:25 ./opt/todesk/bin/libmfxhw64.so.1
-rwxrwxr-x root/root 3528 2022-06-13 17:34 ./opt/todesk/bin/libnvcuvid.so
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/local/
drwxrwxr-x root/root 0 2022-06-10 10:33 ./usr/local/bin/
-rwxrwxr-x root/root 231 2022-06-10 10:33 ./usr/local/bin/todesk
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/16x16/
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/16x16/apps/
-rw-rw-r-- root/root 1322 2022-05-17 18:36 ./usr/share/icons/hicolor/16x16/apps/todesk.png
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/256x256/
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/256x256/apps/
-rw-rw-r-- root/root 6245 2022-05-17 18:36 ./usr/share/icons/hicolor/256x256/apps/todesk.png
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/128x128/
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/128x128/apps/
-rw-rw-r-- root/root 3514 2022-05-17 18:36 ./usr/share/icons/hicolor/128x128/apps/todesk.png
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/64x64/
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/64x64/apps/
-rw-rw-r-- root/root 2237 2022-05-17 18:36 ./usr/share/icons/hicolor/64x64/apps/todesk.png
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/48x48/
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/48x48/apps/
-rw-rw-r-- root/root 1927 2022-05-17 18:36 ./usr/share/icons/hicolor/48x48/apps/todesk.png
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/512x512/
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/512x512/apps/
-rw-rw-r-- root/root 12509 2022-05-17 18:36 ./usr/share/icons/hicolor/512x512/apps/todesk.png
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/32x32/
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/32x32/apps/
-rw-rw-r-- root/root 1608 2022-05-17 18:36 ./usr/share/icons/hicolor/32x32/apps/todesk.png
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/24x24/
drwxrwxr-x root/root 0 2022-05-17 18:36 ./usr/share/icons/hicolor/24x24/apps/
-rw-rw-r-- root/root 1482 2022-05-17 18:36 ./usr/share/icons/hicolor/24x24/apps/todesk.png
drwxrwxr-x root/root 0 2022-08-24 12:25 ./usr/share/applications/
-rw-rw-r-- root/root 394 2022-08-24 12:25 ./usr/share/applications/todesk.desktop
drwxrwxr-x root/root 0 2022-05-17 18:36 ./etc/
drwxrwxr-x root/root 0 2022-05-17 18:36 ./etc/systemd/
drwxrwxr-x root/root 0 2022-06-10 10:33 ./etc/systemd/system/
-rw-rw-r-- root/root 394 2022-06-10 10:33 ./etc/systemd/system/todeskd.service
lrwxrwxrwx root/root 0 2022-08-24 12:25 ./opt/todesk/bin/libigdgmm.so -> libigdgmm.so.12
lrwxrwxrwx root/root 0 2022-06-13 17:34 ./opt/todesk/bin/libnvidia-encode.so -> libnvidia-encode.so.1
lrwxrwxrwx root/root 0 2022-08-24 12:25 ./opt/todesk/bin/libva-drm.so -> libva-drm.so.2
lrwxrwxrwx root/root 0 2022-08-24 12:25 ./opt/todesk/bin/libglut.so -> libglut.so.3
lrwxrwxrwx root/root 0 2022-08-24 12:25 ./opt/todesk/bin/libmfx.so -> libmfx.so.1
lrwxrwxrwx root/root 0 2022-06-13 17:34 ./opt/todesk/bin/libGLEW.so -> libGLEW.so.2
lrwxrwxrwx root/root 0 2022-08-24 12:25 ./opt/todesk/bin/libva-x11.so -> libva-x11.so.2
lrwxrwxrwx root/root 0 2022-08-24 12:25 ./opt/todesk/bin/libva.so -> libva.so.2
lrwxrwxrwx root/root 0 2022-08-24 12:25 ./opt/todesk/bin/libmfxhw64.so -> libmfxhw64.so.1
我这里的是todesk的deb包,可以看到,这个包已经规定来了文件的安装路径。
那如果你要修改安装路径,那应该怎么弄呢?最简单的办法就是修改deb的控制信息,把里面的安装路径给改了,然后重新生成deb包,接着通过命令来安装,不过这个需要你对deb的构成、制作有一定的了解。这里,我把todest的安装包的控制信息导出来(通过dkpk -
命令),可以看到有如下内容:
dpkg -e todesk-v4.3.1.0-amd64.deb unpack/
unpack$ ls
control postinst postrm preinst prerm
可以看到postinst postrm preinst prerm都是脚本
cat preinst
#!/bin/bash
TODESK_PACK_NAME=todesk
TODESK_INSTALL_PATH=/opt/${TODESK_PACK_NAME}
TODESK_SERVICE_CONFIGURE_FILE=config.ini
TODESK_SERVICE_CONFIGURE_PATH=${TODESK_INSTALL_PATH}/config/${TODESK_SERVICE_CONFIGURE_FILE}
#old version
killall todesk > /dev/null 2>&1 || true
if [ -f "${TODESK_INSTALL_PATH}/config/todeskd.conf" ]; then
rm ${TODESK_INSTALL_PATH}/config/todeskd.conf
fi
# disgusting desktop file cache
# fix me:
if [ -f "/usr/share/applications/todesk.desktop" ]; then
version=$(awk -F= -v key="Version" '$1==key {print $2}' /usr/share/applications/todesk.desktop)
if [ "4.3.0.0" \> "$version" ]; then
rm /usr/share/applications/todesk.desktop
echo "Waiting desktop icon cache refresh ..."
sleep 30
fi
fi
if [ -f "${TODESK_SERVICE_CONFIGURE_PATH}" ]; then
cp ${TODESK_SERVICE_CONFIGURE_PATH} ${TODESK_INSTALL_PATH}/
可以看到
TODESK_PACK_NAME=todesk
TODESK_INSTALL_PATH=/opt/${TODESK_PACK_NAME}
TODESK_SERVICE_CONFIGURE_FILE=config.ini
TODESK_SERVICE_CONFIGURE_PATH=${TODESK_INSTALL_PATH}/config/${TODESK_SERVICE_CONFIGURE_FILE}
这几行代码提示了安装路径,你把这里改了,就可以改变安装路径了。
除了更改deb的信息,你还可以通过源码来安装,这样你就可以弄个一个所谓的“绿色”版本,但这需要你自己去搞定软件的依赖信息,需要你搞定编译过程出现的问题,这些对于初学者问来说,都不是简单的问题,需要有一定的知识。
最后,还有一个方法,就是通过以下命令来安装:
sudo dpkg -i --instdir=/to/your/customer/path ***.deb
但这么做不一定可以成功。