Linux脚本判断rpm还是dpkg,Shell命令之用脚本判断源码包是否安装详解

因为Linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了。总结起来就是这样几类:

1、rpm包安装的

可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa | grep “软件或者包的名字”。

[root@xia ~] rpm -qa | grep ruby

2、以deb包安装的

可以用dpkg -l能看到。如果是查找指定软件包,用dpkg -l | grep “软件或者包的名字”;

[[email protected]~]dpkg-l|grepruby

3、yum方法安装的

可以用yum list installed查找,如果是查找指定包,命令后加 | grep “软件名或者包名”;

[root@xia ~] yum list installed | grep ruby

4、以源码包自己编译安装的

例如.tar.gz或者tar.bz2形式的,这个只能看可执行文件是否存在了,

上面两种方法都看不到这种源码形式安装的包。如果是以root用户安装的,可执行程序通常都在/sbin:/usr/bin目录下。

说明:其中rpm yum 是Redhat系linux的软件包管理命令,dpkg是debian系列的软件包管理命令

shell脚本怎么判断源码包是否安装

#!/bin/bash

read -p "input your rpm_packet'name:" i

x=`rpm -qa | grep $i`

if [ `rpm -qa | grep $i |wc -l` -ne 0 ];then

echo -e "yes,the packet_list: \n$x"

else

echo "no"

fi

1、获取shell函数调用的返回值:

#!/bin/sh

info()

{

cat jlb.sh

}

res=`info`

echo "state: "$?

echo "res: "${res}

说明:

res=`info`

这一行为调用函数info,里面的符号`不是单引号,而是Esc按键下面的那个,另外$?返回的为上一条命令的执行状态,不是返回值;

2、获取shell命令的返回值,原理同上,例如:

#!/bin/sh

info=`cat jlb.sh`

echo "info: "${info}

说明:同1

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对您的需求,我可以给您提供一个通用的脚本,可以根据 x86 和 ARM 架构自动判断是否已经安装 Qt,如果没有安装则自动安装,然后自动编译 Qt 项目源码,打可执行程序并拷贝依赖库。 ```bash #!/bin/bash # 指定 Qt 项目源码目录和构建目录 SRC_DIR=/path/to/qt/project BUILD_DIR=/path/to/qt/build # 指定 Qt 版本号 QT_VERSION=5.15.2 # 指定 Qt 安装路径 INSTALL_DIR=/path/to/qt/install # 判断是否已经安装 Qt if [[ $(uname -m) == "x86_64" ]]; then if [[ $(dpkg -l | grep "qt$QT_VERSION-base" | wc -l) -eq 0 ]]; then sudo apt-get update sudo apt-get install -y qt$QT_VERSION-base qt$QT_VERSION-declarative qt$QT_VERSION-quickcontrols qt$QT_VERSION-svg qt$QT_VERSION-tools fi else if [[ $(dpkg -l | grep "qtbase5-dev" | wc -l) -eq 0 ]]; then sudo apt-get update sudo apt-get install -y qtbase5-dev qtdeclarative5-dev qtmultimedia5-dev libqt5svg5-dev libqt5opengl5-dev libqt5network5 libqt5network5-dev libqt5widgets5 libqt5widgets5-dev libqt5gui5 libqt5gui5-gles libqt5gui5-dev libqt5qml5 libqt5qml5-dev libqt5quick5 libqt5quick5-dev libqt5sql5 libqt5sql5-sqlite libqt5sql5-dev libqt5test5 libqt5test5-dev qttools5-dev qttools5-dev-tools fi fi # 编译 Qt 项目源码 cd $BUILD_DIR qmake $SRC_DIR make -j$(nproc) # 打可执行程序 mkdir -p $BUILD_DIR/release cp -rv $BUILD_DIR/$SRC_DIR $BUILD_DIR/release cp -v $INSTALL_DIR/lib/*.so* $BUILD_DIR/release/$SRC_DIR # 打依赖库 mkdir -p $BUILD_DIR/release/libdeps ldd $BUILD_DIR/release/$SRC_DIR | grep "=>" | awk '{print $3}' | sort -u | xargs -I '{}' cp -v '{}' $BUILD_DIR/release/libdeps echo "Qt $QT_VERSION project build completed!" ``` 使用时,您需要将脚本中的路径和参数修改为您自己的设置,然后运行脚本即可。脚本会自动根据架构判断是否已经安装 Qt,如果没有安装则自动安装,然后编译 Qt 项目源码,打可执行程序并拷贝依赖库。 希望这个脚本能够帮到您。如果您还有其他问题,请随时问我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值