我目前在仅命令行环境中工作。
我想使用 自动执行每日更新zypper,但是我找不到一个好的方法来做到这一点。我所说的“好”是指干净、简单。
sudo zypper update使用 cron 每天执行安全吗?有人告诉我,这并不总是一个好方法。
还有其他方法可以通过 zypper 完全自动进行软件包更新吗?
我有两个几乎相同的 openSuSE 12.3 虚拟机,snip以及snap.
今天更新时,一个要求确认一个新的repository or package signing key,另一个没有。
我想确保我没有做错任何事情(以防万一其中一个以一种或另一种方式受到损害),特别是因为系统不要求密钥表明所有存储库都是最新的。
所以:
系统要求信任密钥:
snap:/home/jeroenp # zypper repos -d
# | Alias | Name | Enabled | Refresh | Priority | Type | URI | Service
---+---------------------------+------------------------------------+---------+---------+----------+--------+-------------------------------------------------------------------------------------------------+--------
1 | Security_-_openSUSE_12.3 | Security - openSUSE 12.3 | Yes | Yes | 99 | rpm-md | http://download.opensuse.org/repositories/security/openSUSE_12.3/ |
2 | openSUSE-12.3-1.6 | openSUSE-12.3-1.6 | Yes | No | 99 | yast2 | cd:///?devices=/dev/disk/by-id/ata-VMware_Virtual_IDE_CDROM_Drive_10000000000000000001,/dev/sr0 …Run Code Online (Sandbox Code Playgroud) 我有一个本地存储库,其中包含一些 rpm。回购 xmls 等是最新的。
当我找到一个我没有的 rpm 时,我希望能够下载它,而不是安装它,然后将该 rpm 放入 repo 目录中。
我看到我可以使用,zypper install --download-only <packagename>但这似乎只有在我的盒子上没有安装软件包时才有效,否则它会显示“已经”安装。它也不允许我说明我想要的包的版本/版本/修订版。
这对我没有好处。
如何从我的活动存储库中获取 rpm 并将其存储到指定位置?如果 zypper 不合适,我不介意安装新工具。
我在SUSE中使用zypper si命令安装源码包:
localhost:/dev/disk/by-id # zypper si zlib
Reading installed packages...
Loading repository data...
Resolving package dependencies...
The following source package is going to be installed:
zlib
1 source package to install.
Overall download size: 587.0 KiB. Already cached: 0 B. After the operation, additional 597.7 KiB will be used.
Continue? [y/n/? shows all options] (y): y
Checking for file conflicts: ........................................................................................................[done]
Run Code Online (Sandbox Code Playgroud)
但是当我使用命令:zypper se检查包状态时,它显示“未安装”:
localhost:/dev/disk/by-id # zypper se zlib
Loading repository data...
Reading installed packages...
S | …Run Code Online (Sandbox Code Playgroud) 我刚刚通过将我的所有存储库更改为目标 12.2(而不是 12.1)从 OpenSUSE 12.1 升级到 OpenSUSE 12.2。现在我已经升级了,我发现了一堆没有存储库*的包,YaST 软件管理器在版本栏中用红色文本标记了这些包。我可以滚动浏览这些并删除每一个,但我想知道zypper搜索 ( zypper se) 或软件管理器是否有任何方法可以一次定位/选择所有这些。
*- 这些包有一个存储库(OpenSUSE 12.1 的东西),但是由于我用 12.2 存储库替换了这些存储库,它们不再具有存储库关联。这不会产生问题,因为 12.2 存储库应该包含我运行系统所需的一切。
我在许多 OpenSUSE 论坛上搜索了这个问题的答案,但到目前为止我还没有找到。长话短说,从 Oracle 为 JDK 安装 RPM 时,我收到以下信息:
> sudo zypper install jdk-8u111-linux-x64.rpm
[sudo] password for root:
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following NEW package is going to be installed:
jdk1.8.0_111
1 new package to install.
Overall download size: 158.3 MiB. Already cached: 0 B. After the operation, additional 258.5 MiB will be used.
Continue? [y/n/? shows all options] (y): y
Retrieving package jdk1.8.0_111-2000:1.8.0_111-fcs.x86_64 (1/1), 158.3 MiB (258.5 MiB unpacked)
Checking for file conflicts: …Run Code Online (Sandbox Code Playgroud) 我正在努力理解 zypper 输出搜索中“+”符号的含义。
我有一些包裹在 S 领域有 I,其他有 I+。
这是什么+?
出于某种原因,我的系统在数据包 X 中没有 +,而另一个数据包 Y 有问题。在另一个有 + 符号的系统中,这个问题不存在。
干杯
我在防火墙后面使用 SLES 2015。我所有的传出通信都通过代理进行;具体来说,当我编写时,zypper 会尝试使用代理,例如:
zypper search-packages foo
Run Code Online (Sandbox Code Playgroud)
但代理提供了自己的 SSL 证书,而不是实际的目标站点,本质上是运行“中间人”攻击:-P ...所以我得到:
SSL verification failed: unable to get local issuer certificate
Certificate issuer: /C=US/O=Foo Inc./CN=Foo Inc. External Root CA 2.1
Certificate subject: /C=US/O=Foo Inc./OU=Whatever/CN=Foo Inc. CA 2.1
Could not search for the package: OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate)
Run Code Online (Sandbox Code Playgroud)
我想避免这种失败的证书验证;我猜最简单的方法就是不验证任何证书。如何关闭验证?
附加信息:
# zypper repos
Warning: No repositories defined.
Use the 'zypper addrepo' command to add one or more repositories.
Run Code Online (Sandbox Code Playgroud) 我们正在尝试为基于 SuSE Linux 的设备建立一个存储库。我们正在使用根目录中包含自签名证书的 CA 对存储库进行身份验证。当尝试从存储库检索更新时,我们收到以下消息:
Connecting to server|10.0.1.15|:443... connected.
WARNING: cannot verify server's certificate, issued by `/CN=IntermediateCA_server_1/O=Company/OU=MACOSX OpenDirectory Intermediate CA/emailAddress=it@company.com':
Self-signed certificate encountered.
Run Code Online (Sandbox Code Playgroud)
由于缺乏信任,更新失败。
有没有办法在设备上安装自签名证书,以便 zypper 找到它并知道信任它?
我最近安装了 openSUSE,我想设置一个 ssh 服务器,以便我可以 ssh 进入这台机器。但是,我在安装 openssh-server 时遇到问题。
我努力了
$ sudo zypper install openssh-server
Run Code Online (Sandbox Code Playgroud)
这是该网站要求输入的内容,但我收到以下消息:
Package 'openssh-server' not found.
Run Code Online (Sandbox Code Playgroud)
在我的Ubuntu机器上,如果我输入
$ sudo apt-get install openssh-server
Run Code Online (Sandbox Code Playgroud)
或者在我的Fedora机器上
$ sudo yum install openssh-server
Run Code Online (Sandbox Code Playgroud)
一切正常。
如何openssh-server在 openSUSE 上安装?我是否必须手动为其添加 RPM 存储库或其他内容?
该解决方案不需要使用zypper,但我希望不必手动下载和编译源代码。