在用apt install中如何选择安装路径?

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

但这么做不一定可以成功。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值