![在没有 sudo 访问权限的情况下安装包及其关联或所需的共享库 (.so)](https://linux22.com/image/220616/%E5%9C%A8%E6%B2%A1%E6%9C%89%20sudo%20%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%AE%89%E8%A3%85%E5%8C%85%E5%8F%8A%E5%85%B6%E5%85%B3%E8%81%94%E6%88%96%E6%89%80%E9%9C%80%E7%9A%84%E5%85%B1%E4%BA%AB%E5%BA%93%20(.so).png)
我需要ffmpeg
在没有访问权限的情况下安装在我公司的服务器上sudo
。我是这样做的:
- 添加
$HOME/bin
和$HOME/usr/bin
到我的PATH
和$HOME/usr/lib/x86_64-linux-gnu/
到我的LD_LIBRARY_PATH
- 使用命令下载
ffmpeg
到我的,并安装它(二进制文件进入)HOME
apt-get download
$HOME/usr/bin
dpkg -x [ffmpeg .deb file] .
- 当我运行时
ffmpeg
,我遇到了丢失的共享库,例如libSDL2-2.0.so.0
,,libass.so.9
...因此我决定一次又一次地运行ffmpeg
以找到丢失的共享库(.so文件)并通过步骤2:apt-get download
和中的2个步骤进行安装dpkg -x
。
我做了57次,直到拿到所有.so
文件并运行ffmpeg
成功。但是,我必须这样做,因为我找不到一种方法来获取.so
没有特权的包的所有正确的必要文件sudo
。任何人都可以帮助我为此提供一个(更好)更好的流程吗?我听说过 JuNest,但如果可能的话,我希望首先采用传统方法。多谢。
答案1
一种黑客方式:你可以安装simulate
ie
apt -s install ffmpeg
寻找:
The following additional packages will be installed:
libavdevice57 libsdl2-2.0-0
然后是这样的:
$ cd
$ mkdir alt/mysoft/ffmpeg
$ cd alt/mysoft/ffmpeg
$ apt-get download ffmpeg libavdevice57 libsdl2-2.0-0
$ for f in *; do dpkg -x "$f" ../..; done
$ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$HOME/alt/usr/lib/x86_64-linux-gnu"
$ export PATH="$PATH:$HOME/alt/usr/bin"
$ ffmpeg -version
您希望将LD_LIBRARY_PATH
和PATH
附加内容添加到某些启动文件中,以免重新下载现有依赖项。