Linux 软件有时会忘记是从哪个源安装的,升级时不知道该使用哪个命令

2023-03-05 16:17:50 +08:00
 dawn009

有的是从包管理器直接安装(有可能有多个包管理器),有的是 Flathub ,有的是 AppImage ,有的是下载的安装包,还有的是直接编译的。 时间长了会忘记当初是怎么安装的,升级时不太确定执行哪个命令。 大家如何解决这个问题?

2686 次点击
所在节点    Linux
21 条回复
dethan
2023-03-05 16:20:06 +08:00
做记录?
dawn009
2023-03-05 16:24:03 +08:00
@dethan 多了一项额外成本。很多时候装软件要么在工作流中为了解决其他问题,要么在尝试多个同类软件,不太可能分心去做记录。
paperseller
2023-03-05 16:27:15 +08:00
如果有桌面环境可以安装 bauh 多源包管理器,除了自编译的其他都覆盖了
dawn009
2023-03-05 16:30:20 +08:00
@paperseller 我去试试,感谢!
GeruzoniAnsasu
2023-03-05 16:36:02 +08:00
history | grep ……
adoyle
2023-03-05 17:00:19 +08:00
通过查看软件的安装路径来确定是哪个包管理器安装的
0o0O0o0O0o
2023-03-05 17:23:12 +08:00
每天打开电脑第一件事就是习惯性执行更新小脚本,里面是电脑上所有包管理的更新命令,不通过包管理安装的软件也会在安装后就把检查更新加进去。
yanqiyu
2023-03-05 17:32:22 +08:00
我的做法就是尽量避免安装的太杂,要么系统包要么 flatpak
再没办法就容器伺候
Owenjia
2023-03-05 17:35:26 +08:00
包管理基本都是可以查看软件包来源的,比如:dpkg -S /path/to/file ; rpm -qf /path/to/file ; qfile /path/to/file 。
不在包管理管理范围内的可能麻烦点,像 appimage 可以检查命令行参数,自编译的可以在编译时指定个单独的 prefix 让它不跟别的混在一起,另外还可以拿 bwrap/firejail 单独搞一个目录结构放一些声誉不太好的私有软件。
就个人来说,我是尽量所有的软件都通过包管理( portage )安装,仓库里没有的就自己单独打包维护一个,包管理提供的功能相对比较丰富,管理方便。比如可以避免覆盖系统文件,检测是文件内容是否被篡改过。
bjzhush
2023-03-05 17:44:20 +08:00
ps -ef|grep appName
找出路径之后就知道下一步了
littlewing
2023-03-05 19:29:59 +08:00
使用 archlinux
Joomaen
2023-03-05 21:42:16 +08:00
隔几天就 dup 系统更新一下,再 flatpak update 下
orangie
2023-03-05 21:57:35 +08:00
不知道的时候就各个管理器都尝试一下列出已安装软件,谁列出来了应该就是谁的。
littlezzll
2023-03-06 08:39:36 +08:00
LindsayZhou
2023-03-06 08:46:09 +08:00
所以 AUR 是个好东西,AUR 里都没有的可以自己写 PKGBUILD 打包,写起来挺简单的。
julyclyde
2023-03-06 09:22:39 +08:00
@Owenjia 你说的这些是按文件查包,不是按包查源
lechain
2023-03-06 10:07:31 +08:00
11 楼说的对(
Owenjia
2023-03-06 18:22:57 +08:00
@julyclyde 我的错,下意识的认为找到包了就知道来源了,实际还需要额外一个步骤,查看安装的包,比如:
apt info pkgname;
zypper if pkgname 或者 zypper se -is pkgname;
eix pkgname 。
在输出结果中会有从哪个仓库中安装上这个包的信息。
libook
2023-03-06 18:28:03 +08:00
我用 Manjaro 基本就是官方包和 AUR 用一个 yay 指令完成更新,Flatpak 是 Manjaro 自带的软件包管理器 GUI 可以一起管理。AppImage 只有上述都不能用的时候才会用,比较罕见,我目前只有 UHK 键盘的配置工具会使用这种方式,没有一键升级的方案,每次得手动下载、安装、删除旧版。

私人服务器上是 Debian ,绝大部分服务都是走的 Docker 镜像,极少数涉及到硬盘管理的首选官方包,需要新特性或有 bug 再考虑下载软件开发者官方的新版 deb ,安装后只要版本高于发行版软件源就不会被自动升级,有需要的话可以手动下载升级。

目前没有自己编译的需求,有的话基本会在特定目录保存源代码,想知道哪些软件是编译的去看这个目录就好,更新也可以手动拉代码、编译、安装。打成发行版格式的包或者仍 /opt 都可以。

当然手动的部分都可以自己写脚本来简化。
limon
2023-03-08 23:40:47 +08:00
nixos

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/921307

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX