通过 python 脚本安装 .rpm 或 .msi 文件
install .rpm or .msi file through python script
我是 python 的新手。我有一个 python 脚本,用于从 S3 存储桶下载 rpm 文件。
import platform
import boto3
import botocore
BUCKET_NAME = 'tempdownload'
KEY = 'temp.rpm' # packaged using golang
platformName = platform.system()
s3 = boto3.resource('s3')
print(platformName)
if platformName == 'Linux':
try:
bucket = s3.Bucket(BUCKET_NAME)
bucket.download_file(KEY, 'temp.rpm')
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == "404":
print("The object does not exist.")
else:
raise
else:
print("not valid operating system")
我想在同一个文件中添加脚本来安装下载的 rpm 文件或 windows 的 msi 包。我试着在网上搜索,但没有得到任何信息。如果有人提供一些指示,将不胜感激。
谢谢!
你必须调用系统命令 - rpm -Ivh yourpackage.rpm
import subprocess
package_path = '/home/mypackage.rpm'
command = ['rpm', '-Ivh', package_path]
p = subprocess.Popen(command)
p.wait()
if p.returncode == 0:
print("OK")
else:
print("Something went wrong")
您可以使用 rpm 绑定直接从 Python 安装它。参见:https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch16s06.html
但是,您不应直接调用 rpm,而应调用 Yum 或 DNF 或其 python 绑定。
我是 python 的新手。我有一个 python 脚本,用于从 S3 存储桶下载 rpm 文件。
import platform
import boto3
import botocore
BUCKET_NAME = 'tempdownload'
KEY = 'temp.rpm' # packaged using golang
platformName = platform.system()
s3 = boto3.resource('s3')
print(platformName)
if platformName == 'Linux':
try:
bucket = s3.Bucket(BUCKET_NAME)
bucket.download_file(KEY, 'temp.rpm')
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == "404":
print("The object does not exist.")
else:
raise
else:
print("not valid operating system")
我想在同一个文件中添加脚本来安装下载的 rpm 文件或 windows 的 msi 包。我试着在网上搜索,但没有得到任何信息。如果有人提供一些指示,将不胜感激。
谢谢!
你必须调用系统命令 - rpm -Ivh yourpackage.rpm
import subprocess
package_path = '/home/mypackage.rpm'
command = ['rpm', '-Ivh', package_path]
p = subprocess.Popen(command)
p.wait()
if p.returncode == 0:
print("OK")
else:
print("Something went wrong")
您可以使用 rpm 绑定直接从 Python 安装它。参见:https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch16s06.html
但是,您不应直接调用 rpm,而应调用 Yum 或 DNF 或其 python 绑定。