将安装脚本从Redhat更改为Ubuntu

将安装脚本从Redhat更改为Ubuntu,第1张

概述已使用RPM为Redhat编写安装脚本(适用于 Microsoft® SQL Server® ODBC Driver 1.0 for Linux) 它使用此代码检查是否安装了某些软件包 req_libs=( glibc e2fsprogs krb5-libs openssl )for lib in ${req_libs[@]}do local present=$(rpm -q -a 已使用RPM为Redhat编写安装脚本(适用于 Microsoft® SQL Server® ODBC Driver 1.0 for Linux)

它使用此代码检查是否安装了某些软件包

req_libs=( glibc e2fsprogs krb5-libs openssl )for lib in ${req_libs[@]}do    local present=$(rpm -q -a $lib) >> $log_file 2>&1    if [ "$present" == "" ]; then        log "The $lib library was not found installed in the RPM database."        log "See README for which librarIEs are required for the $driver_name."        return 1;    fidone

我已经通过了解/信任库已安装并简单地删除测试来克服了这个问题,但我现在想整理一下.

>如何在Ubuntu上找到要查找的库.是否有Redhat的命令或翻译网页 – > Ubuntu的
>用dpkg -s替换rpm -q -a是否正确?

解决方法 1)找到合适的包装

在Ubuntu / Debian中,通常库包装前缀为“lib”而不是后缀.
开发包通常以“-dev”为后缀,而不是“-devel”

如果您不确定命名等效包的内容,可以始终执行以下 *** 作:

sudo apt-get updateapt-cache search <packagename>

…并且在搜索中不包含“lib”或“dev”部分,您将获得不错的结果.从那里,您可以手动确定您正在寻找的正确包装.

2)查找已安装的软件包

你可以使用“dpkg -s”它会起作用,虽然根据我对“rpm -qa”输出的理解,你可能想要一些不那么冗长的东西.管道输入“grep”的“dpkg-query -l”将在一行输出包信息,并且应该更容易阅读.

以下是脚本的等效部分(具有正确的包名称和单独行上的log_file输出以正常工作):

#!/bin/bashfunction stack_install(){log_file="$HOME/Desktop/stackoverflow/stack-log.txt"req_libs=( libc6 e2fsprogs libkrb5-3 openssl )for lib in ${req_libs[@]}do    local present=$(dpkg-query -l "$lib" | grep "$lib" 2>/dev/null)    echo "$present" >> "$log_file"    if [ "$present" == "" ]; then        echo "The $lib library was not found installed in the dpkg database."        echo "See README for which librarIEs are required for the $driver_name."        return 1;    fidone }stack_install
总结

以上是内存溢出为你收集整理的将安装脚本从Redhat更改为Ubuntu全部内容,希望文章能够帮你解决将安装脚本从Redhat更改为Ubuntu所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1025988.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存