请问可以查询现在安装的源对应安装着哪些安装的软件吗?[已解决]

各位前辈好:

这两天 zypper update 的时候发现以下的情形:

New repository or package signing key received:

  Repository:       home:aeneas_jaissle                                                     
  Key Name:         home:aeneas_jaissle OBS Project <home:aeneas_jaissle@build.opensuse.org>
  Key Fingerprint:  614573DD 19C3E0DE C236B534 026237DB 12ABF9E0                            
  Key Created:      西元 2014 年 05 月 21 日 (週三) 01 時 44 分 26 秒                                  
  Key Expires:      西元 2016 年 07 月 29 日 (週五) 01 時 44 分 25 秒                                  
  Rpm Name:         gpg-pubkey-12abf9e0-537b947a                                            


Do you want to reject the key, trust temporarily, or trust always? [r/t/a/? shows all options] (r):

所以我想知道一下,到底是哪些套件是透过这个源安装的,有命令可以查询吗?
我 man 过 zypper 似乎没有发现到…

另外,安装私人源与信任金钥,到底存在多大的风险?应该要怎么评估与把握?

还请各位前辈指教。

sudo zypper se -ir 源名称,试试?

从我的 iPhone 发送,使用 Tapatalk

私人源就是那个人自己的源,他怎么折腾都行,哪怕他编译的是个木马但告诉你是 QQ。PPA、AUR 不也是一样么?

上面那种情况高手一样中招,高手跟低手唯一的区别是高手可以先去 build.opensuse.org 上他的源里看他的 specfile,通过风格判断这个人是不是官方的打包者(比如遵循 openSUSE 的代码风格而不是 Fedora 甚至是 CentOS 的),来推测他的软件包质量。新手一样可以,直接看他的包的 rpmlint 报告就行了。但假如他用最正规的代码风格给你打包个木马,那神仙都没有办法。

业内最常见的方法是约束源代码压缩包的来源。因为打包除了源代码压缩包,其它大部分都是透明可见普通人稍微学一学就知道打包者试图在干嘛的。于是就有比如 deb 和 aur 的那个 md5sum check,以及我们 obs 上 specfile 里的 Source 字段要求直接写上游源代码压缩包下载地址。

deb 和 aur 的做法是相信输入的 md5sum 是正确的,他们上传的源代码压缩包的 md5sum 是一致的,这样服务器检测就能过,或者本地用户自己下载的源代码压缩包跟 aur 里一致就能过。但现实问题是检测很松甚至根本没有检测,毕竟没有自动化工具辅助(dpkg)辅助,手取 md5sum 很累,一般都瞎填,或者说自动化工具只能防止打包者下到带木马的源代码防止不了他自己恶意上传。而 OBS 要先进一些,你上传一个,服务器从 Source 写的那个下载地址取一个做比对,确保了跟上游一致,但上游带马就完了。但一样存在着不强制的问题,而且这个特性的初衷是为了防止打包者不使用补丁而直接去改源代码重压缩成包,而不是防毒。

所以综上,打包系统的设计是信任打包者不会搞鬼,信任上游也不会捣鬼,一点查马机制都没的。那到你也只能成为一个理念问题了,你相信 Linux 世界是友善的你就用这种便利机制,觉得世界充满恶意你可以选择不用,或者努力学习用打包平台自己方便自己。

从我的 iPhone 发送,使用 Tapatalk

1赞

GPG 金钥是保障 rpm 软件包从一个镜像到另一个镜像的传递是完整的,最多保证服务器上的软件包和你下载到的包是一致的不存在中间人攻击,但保证不了里面的内容是无毒无害的。

从我的 iPhone 发送,使用 Tapatalk

@maguerite , 谢谢,确实可以显示。

Loading repository data...
Reading installed packages...

S | Name   | Summary                                      | Type   
--+--------+----------------------------------------------+--------
i | pencil | Tool for making diagrams and GUI prototyping | package