Ubuntu 依赖库调整

简介: Ubuntu 依赖库调整

目的

想要实现的目的就是将 Easy Connect 这个软件依赖的 Pango 库降级,来达到兼容的目的。


首先看一下 Easy ConnectPango 的依赖关系

$ ldd /usr/share/sangfor/EasyConnect/EasyConnect | grep pango
    libpangocairo-1.0.so.0 => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007faa0e276000)
    libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007faa0e0dc000)
    libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007faa0c432000)点击复制复制失败已复制


可以看到,这三个包的地址都是指向了系统库(因为路径是 /lib/x86_64-linux-gnu/** )我们要将其降级,是绝对不能动系统库的,需要单独为其指定依赖。


流程

Step1. 准备软件包

首先,去 ubuntu 软件中心将这三个软件包都下载下来



下图是 libpango-1.0-0 的下载页面示意:

libpango下载页面.png


这三个包下载下来都是 deb 文件,注意: 千万不要直接安装!千万不要直接安装!千万不要直接安装!


将这三个包解压, 不是双击解压!不是双击解压!不是双击解压! ,是 右键 --> 提起到此处 进行解压。


解压后能够看到一个以包名命名的文件夹,这里以 libpango-1.0-0 包示意,里面的文件及文件夹应如下所示:

libpango-1.0-0_1.40.14-1ubuntu0.1_amd64
    ├── control.tar.xz
    ├── data.tar.xz
    └── debian-binary点击复制复制失败已复制


接下来将 data.tar.xz 压缩包解压,会得到一个 data 文件夹,里面的文件及文件夹应如下所示:

data
└── usr
    ├── lib
    │   └── x86_64-linux-gnu
    │       ├── libpango-1.0.so.0 -> libpango-1.0.so.0.4000.14
    │       └── libpango-1.0.so.0.4000.14
    └── share
        └── doc
            └── libpango-1.0-0
                ├── AUTHORS
                ├── changelog.Debian.gz
                ├── copyright
                ├── NEWS.gz
                ├── README
                └── THANKS
6 directories, 8 files点击复制复制失败已复制


其余两个包做同样的解压缩处理。


Step2. 依赖包替换

我们不想更新全局的依赖库,那么就要针对具体软件来进行单独配置。首先要了解软件是如何寻找依赖的,这个请参考上面提到的笔记:Linux系统依赖库

接下来就容易了,只需要将这三个包的 so文件so指向文件 移动到 Easy Connect 的可执行文件安装路径下即可。其安装路径为: /usr/share/sangfor/EasyConnect/


Step3. 查看修改结果

$ ldd /usr/share/sangfor/EasyConnect/EasyConnect | grep pango
    libpangocairo-1.0.so.0 => /usr/share/sangfor/EasyConnect/libpangocairo-1.0.so.0 (0x00007f9f4dfe8000)
    libpango-1.0.so.0 => /usr/share/sangfor/EasyConnect/libpango-1.0.so.0 (0x00007f9f4dc50000)
    libpangoft2-1.0.so.0 => /usr/share/sangfor/EasyConnect/libpangoft2-1.0.so.0 (0x00007f9f4bda9000)点击复制复制失败已复制


可以看到,这三个包的指向已经从 /lib/x86_64-linux-gnu/** 转到/usr/share/sangfor/EasyConnect/** ,证明我们调整成功了!

目录
相关文章
|
5月前
|
存储 网络协议 Ubuntu
如何在Ubuntu安装配置SVN服务端并实现无公网ip访问内网资料库
如何在Ubuntu安装配置SVN服务端并实现无公网ip访问内网资料库
178 0
|
Ubuntu
Ubuntu 18.04中卸载及安装G2O库
Ubuntu 18.04中卸载及安装G2O库
754 0
|
29天前
|
Ubuntu
使用dpkg在ubuntu上安装软件包遇到依赖包的问题
使用dpkg在ubuntu上安装软件包遇到依赖包的问题
|
4月前
|
Ubuntu
在Ubuntu上安装JetBrains Toolbox并解决libfuse.so.2依赖问题
在Ubuntu上安装JetBrains Toolbox并解决libfuse.so.2依赖问题
216 3
|
5月前
|
Ubuntu Linux Go
ubuntu linux (20.04) 源码编译cryptopp库 - apt版本过旧
ubuntu linux (20.04) 源码编译cryptopp库 - apt版本过旧
111 1
|
4月前
|
Ubuntu 编译器 C语言
蓝易云 - ubuntu上安装boost库为SOMEIP的X86和ARM下编译做准备(编译两种版本)
以上就是在Ubuntu上安装Boost库并为SOME/IP的X86和ARM架构编译做准备的全部步骤。
61 0
|
4月前
|
Ubuntu
蓝易云 - Ubuntu18.04安装编译ffmpeg库
现在,你应该已经在你的Ubuntu 18.04系统上成功安装和编译了FFmpeg库。你可以通过运行 `ffmpeg -version`来验证安装是否成功。
50 0
|
5月前
|
SQL Ubuntu Linux
Linux(30)Rockchip RK3568 Ubuntu 20.04上解决常见的库依赖问题
Linux(30)Rockchip RK3568 Ubuntu 20.04上解决常见的库依赖问题
143 1
|
5月前
|
缓存 Ubuntu 数据库
ubuntu无法使用apt命令时怎么安装库
无论哪种方法,一旦成功安装了所需的库文件,你应该能够在Ubuntu系统上正常使用它们。如果问题仍然存在,可能需要进一步检查系统的包管理配置和依赖关系问题。
209 0
|
5月前
|
Ubuntu Python
ubuntu同一开源库多版本安装使用注意事项
总之,同时安装和使用同一开源库的多个版本需要仔细考虑,避免引起各种冲突和问题。最好的做法是在隔离的环境中进行测试,确保不同版本的库能够和其他组件正常协同工作。
134 0