Linux 依赖管理浅析

Linux 依赖管理浅析

软件依赖管理是Linux中极其重要的部分,本文浅要分析一下依赖管理中的相关内容

在debian系统中可以通过官网查所安装文件包的名称,可以在这个网站查看软件包列表;如果是电脑本地的,也可以通过命令来查找如apt search jre; apt remove 包名apt purge 包名

archlinux也可以从官网上查看安装包名称,也可以从aur官网查看并安装

Linux安装卸载软件的方式

  • 下载程序源代码编译安装
发行版名称 包管理工具 命令行示例
CentOS/RedHat yum yum install xxx
Debian/Ubuntu apt apt-get apt-get install xxxx
Fedora dnf dnf install xxxx
FreeBSD pkg pkg install xxx
Alpine Linux apk apk add xxx

为什么需要编译安装?

虽然有很多开源软件将软件打成包,供人们使用,但并不是所有源代码都打成包,如果想使用开源软件,可能需要自已下载源码,进行编译安装。另外即使提供了包,但是生产中需要用于软件的某些特性,仍然需要自行编译安装。但是利用源代码编译安装是比较繁琐的,庆幸的是有相关的项目管理工具可以大大减少编译过程的复杂度。

源代码编译安装过程

利用编译工具,通常只需要三个大的步骤:

  • ./configure
    (1)通过选项传递参数,指定安装路径、启用特性等;执行时会参考用户的指定以及Makefile.in文件生成Makefile
    (2)检查依赖到的外部环境,如依赖的软件包
  • make根据Makefile文件,会检测依赖的环境,进行构建应用程序
  • make install复制文件到相应路径

注:

编译安装后的配置

  1. 二进制程序自录导入至PATH环境变量中
    编辑文件/etc/profile.d/NAME.sh
  2. 相关用户及文件
    有些开源软件编译完成后,还需要创建相关的用户及文件
  3. 导入帮助手册
    编辑/etc/man.config|mandb.conf文件,添加一个MANPATH

编译安装示例

1、现在以源码安装tree为例,首先要获取tree的源码包;

yum info tree  查看源码包在哪里下载
apt info tree  查看源码包在哪里下载

2、打开上面的`http://mama.indstate.edu/users/ice/tree`,找到下载地址后右键复制链接;在linux窗口`wget http://mama.indstate.edu/users/ice/tree/src/tree-2.1.0.tgz`进行下载;

3、解压并进入下载下来的压缩包内;如果要修改版本可以在tree.c中进行修改;修改安装路径可以在`makefile`中修改。

4、安装完以后进行添加环境变量,否则的话系统是不能识别tree这个命令的

echo 'PATH=/apps/tree/bin:$PATH' > /etc/profile.d/tree.sh  # $PATH原来就有的系统变量,在此基础上追加当前的tree系统变量;
./ect/profile.d/tree.sh   # 执行一次系统变量
tree 此时tree命令就可以用了;

如下图所示,在安装的过程中缺少SDL2库,可以使用`apt search SDL2`,找到与这个库接近的库`libsdl2-dev`

然后使用`sudo apt install libsdl2-dev`进行安装;出现版本冲突的问题,哪些低了,哪些低了,哪些缺了;

可以使用`aptitude install libsdl2-dev`它的本质是读出依赖的问题并尝试解决;

对于 Linux 虚拟机,您可以从命令行手动安装 VMware Tools。对于 Linux 的较高发行版,请使用集成的 open-vm-tools 版本。

apt install open-vm-tools open-vm-tools-desktop -y

dpkg -l |grep open-vm-tools 查都安装了哪些包;

RedHat Package Manager包管理的基本使用方法【rpm包管理】

常见的包管理软件有apt, yum/dnf, pacman, zypper等

  • 软件供应链的接入——–软件仓库源
  • 依赖关系的自动解决
  • 软件包的版本管理
  • 软件包的升级管理
  • 软件包的签名管理

下面以apt包管理器为例

rpm包相关的网站上可以下载软件包:rpmfind官站; phone官网;

rpm -ivh xxxx.rpm    #rpm包的安装 
rpm -qf `which zsh`  #查zsh命令是由哪个包安装的;
rpm -qpl /mnt/Packages  #在软件没有安装之前查会产生哪些安装文件和命令;
rpm -Uvh /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm #对现有软件进行升级
rpm -e zsh  #卸载软件;

源码包的安装

1、获得源码包
2、解压 tar -zxvf  
3、配置、检测安装环境 #./configure 检测安装环境是否符合需求,如果没有问题,生成makefile文件;
4、编译 #make
5、安装  #make install 
6、删除源码包 make uninstall,这样删除是不干净的,可以在configure时添加一个--prefix参数;删除时直接删除这个目录就可以了;
注:在linux中rz命令可以将远端文件上传到本地;在linux中sz命令可以将本地文件下载到远端;
转载请注明出处:  https://www.cntworld.cn
智能工控 » Linux 依赖管理浅析

发表回复

提供最优质的资源集合

立即查看 了解详情
文章加载时间:0.004 秒