在 WSL 上,我执行了sudo zypper update,但收到此错误消息。
正在加载存储库数据...
警告:存储库“oss_update”似乎已过时。考虑使用不同的镜像或服务器。
正在读取已安装的包...没事做。
但是,当我执行时sudo zypper refresh,我没有收到任何错误消息。
Retrieving repository 'The Go Programming Language (openSUSE_Leap_42.3)' metadata ...............................................................................................................................................[done]
Retrieving repository 'devel:languages:php (openSUSE_Leap_42.3)' metadata .......................................................................................................................................................[done]
Repository 'oss' is up to date.
Retrieving repository 'oss_update' metadata .....................................................................................................................................................................................[done]
Retrieving repository 'PHP7 extensions (php7_openSUSE_Leap_42.3)' metadata ......................................................................................................................................................[done]
All repositories have been refreshed
Run Code Online (Sandbox Code Playgroud)
我检查了我正在使用的存储库列表zypper lr -u。
# | Alias | Name | Enabled | GPG Check | Refresh | URI
--+----------------------------+--------------------------------------------------+---------+-----------+---------+-------------------------------------------------------------------------------------------------
1 | devel_languages_go | The …Run Code Online (Sandbox Code Playgroud) 我有一些关于在 bash 脚本中从 apt-get 移动到 zypper 的问题。
这相当于什么?
sudo apt-get install curl --assume-yes
Run Code Online (Sandbox Code Playgroud)
(其中 curl 可以是任何包)
我找到了Zypper Cheat Sheet - openSUSE。非常好!但我很感激这里的经验之声——在我想自动同意所有提示而不跳过需要响应的事情的脚本中使用 zypper 的正确方法是什么?
由于我的经验不足,我很想使用:
sudo zypper --non-interactive --no-gpg-checks --quiet install --auto-agree-with-licenses curl
Run Code Online (Sandbox Code Playgroud)
但这真的等同于--assume-yes吗?
这些等价物呢?
sudo apt-get autoremove -y
sudo apt-get autoclean -y
Run Code Online (Sandbox Code Playgroud)
这表明没有一个...
gdebi-core 有替代品吗?或者 zypper 的“强大的可满足性求解器”永远不需要 gdebi?我将 gdebi 用于需要在旧版本上安装软件包并且我已经有一个 .deb 文件(但不是所有依赖项)的情况。
我正在考虑一些类似Contents-<arch>.gzDebian 的问题。网络服务也还行。它存在吗?
简单阐述:例如,我们需要一个名为 的二进制文件exampletool,我们从其他发行版或操作系统中非常了解它。例如,我们想用 zypper 安装它。但是zypper只能安装一个包。为了找出我们可以在哪个包中找到所需的exampletool二进制文件,我们实际上需要进行搜索,最好是在当前未安装的文件列表中进行快速索引搜索,但在存储库中可用的包。在 debian 上,包存储库中有一个名为 的索引文件Contents-amd64.gz,我们可以在其中使用单个zgrep命令找到所需的包。我也在为 OpenSUSE 寻找一些类似的单命令解决方案。如果没有,Web 服务也可以用于相同的功能。
假设我使用zypper ar. 然后,我已经从该存储库中安装了多个软件包,但现在我想删除所有这些软件包。
是否有一个命令允许我从该特定存储库中删除我安装的所有软件包?
我如何告诉zypper重新安装所有当前安装的软件包?
如何同时安装包模式(例如“C/C++ 开发工具”)和包(例如“mercurial”)?目前,需要两个命令;例如,我写的安装说明sketch-frontend是,
sudo zypper install -t pattern "devel_C_C++" "devel_java"
sudo zypper install java-1_6_0-openjdk-devel mercurial
Run Code Online (Sandbox Code Playgroud)
[链接]。
(动机)。的确,一个命令只需要两个命令,但在 Internet 连接速度较慢(或处理器较慢)的机器上,没有第二个命令自动继续是很烦人的。此外,确实需要提示用户进行包解析,因此仅添加--non-interactive标志不是一种选择。
谢谢!
我已经阅读了 zypper 手册页,但它没有解释输出。因此,我请您解释一下“ S ”栏代表什么。
例如。类型:
zypper se -s post
Run Code Online (Sandbox Code Playgroud)
一些输出如下所示:
S | Name | Type | Version | Arch | Repository
--+-------------------------------------+------------+-----------------------+--------+-----------------------
| libgda-4_0-postgres | package | 4.1.2-1.3.48 | x86_64 | SLE11SP3-SERVER
i | libqt4-sql-postgresql | package | 4.6.3-5.32.1 | x86_64 | SLE11SP3-SDK-UPDATE
v | libqt4-sql-postgresql | package | 4.6.3-5.29.2 | x86_64 | SLE11SP3-SDK-UPDATE
v | libqt4-sql-postgresql | package | 4.6.3-5.25.4 | x86_64 | SLE11SP3-SDK
Run Code Online (Sandbox Code Playgroud)
问题是:
我有自己的个人仓库,里面有旧版本的 rpm。如果我想安装 boost-license 版本 1.36.0.11.17,我会执行以下操作
zypper install boost-license=1.36.0-11.17
Run Code Online (Sandbox Code Playgroud)
这似乎被打破了,但是好像我将 rev 更改为我知道不存在的 rev 然后它只是恢复到安装最新的 rev 而不是错误,这是愚蠢的。
我发现强制 zypper 安装我想要的特定 rpm 的唯一方法是说明确切的 rpms URL httlp//mylocalrepository/myrpms/boost-1.36.0.11.17.src.rpm。
任何想法如何使用 zypper,因为它旨在安装特定版本,如果它不存在则会出错?
我正在编写一个脚本来安装一些软件包并进行一些配置工作。我希望脚本安装包的特定主要版本,但我不在乎它是包的哪个次要版本。
更重要的是,我希望它安装包的最新 2.yz 版本,而不是 1.yz 或 3.yz(或任何其他主要版本号)。
我试过(没有成功)
zypper install 'mypackage=2'zypper install 'mypackage>1<3'zypper install 'mypackage>1' 'mypackage<3'zypper install 'mypackage>=2.0.0' 'mypackage<3.0.0'最后一个看起来很有希望,因为 zypper 抱怨道:
在包名称中找不到“mypackage>=2.0.0”。尝试能力。未找到“mypackage >= 2.0.0”的提供者。
但是,在该消息之后,它仍然继续安装 mypackage-1.5.0,因为它满足指定的第二个 package-edition。
zypper ×10
opensuse ×8
rpm ×4
suse ×2
apt ×1
bash ×1
command-line ×1
pipe ×1
reinstall ×1
repository ×1