QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: dgy18787

ylmf 自己的一套软件包方案 : ypk

[复制链接]
发表于 2011-6-8 17:41:49 | 显示全部楼层
sejishikong ,ML 自己设计一个包管理系统如何?哪怕拿 rpm 来改也行啊……
回复

使用道具 举报

 楼主| 发表于 2011-6-8 18:30:44 | 显示全部楼层
其实我感觉rpm也挺好的。现在如果故意把自己分离出去反而不好生存了。
回复

使用道具 举报

发表于 2011-6-8 20:54:40 | 显示全部楼层

RPM 的 spec 看着有点乱……
回复

使用道具 举报

 楼主| 发表于 2011-6-8 23:01:57 | 显示全部楼层
自己出套自解压安装程序……安装的时候自动检测对应目录里面存不存在依赖的相关文件……我感觉这样的安装包模式好像还不错
回复

使用道具 举报

发表于 2011-6-9 10:00:15 | 显示全部楼层
原帖由 jiangtao9999 于 2011-6-8 17:41 发表
sejishikong ,ML 自己设计一个包管理系统如何?哪怕拿 rpm 来改也行啊……

其实到不用自己设计一个,现在 rpm 应该是够用的。rpm 在fc/suse/mandriva上其实已经不同了。
要是 spec 能遵守标准来写,很多其它发行版(比如gentoo)能实现的,rpm都能实现。

自解压的好像有这样的打包程序,不过少了行,多了会不方便的。
回复

使用道具 举报

发表于 2011-6-9 10:06:01 | 显示全部楼层
原帖由 sejishikong 于 2011-6-9 10:00 发表

其实到不用自己设计一个,现在 rpm 应该是够用的。rpm 在fc/suse/mandriva上其实已经不同了。
要是 spec 能遵守标准来写,很多其它发行版(比如gentoo)能实现的,rpm都能实现。

自解压的好像有这样的打包程序,不过少了行,多了 ...

se 我有这么个想法,咱们可以搞一套标准规则,然后做一个中间 spec 的格式转换,这样就可以转换成各种打包的 spec 规范了。
去掉某些晦涩的,针对于某一个包管理器的spec技巧,全部都统一成规范格式..(规范格式即为每个包管理系统所共有的规则)
这样的好处在于,我们可以轻松的把当前包管理系统转换成任意的例如 rpm deb ebuild..还可以作为之后我们构建自己的包管理系统的基础。
回复

使用道具 举报

发表于 2011-6-9 10:30:10 | 显示全部楼层
我对deb/ebuild/aur都不熟悉啊。
现在也没整理出spec到底那些地方需要规范。
大家提提建议。rpm和其它包管理相比,那些地方需要改的。
回复

使用道具 举报

发表于 2011-6-9 19:59:54 | 显示全部楼层
原帖由 zy_sunshine 于 2011-6-9 10:06 AM 发表

se 我有这么个想法,咱们可以搞一套标准规则,然后做一个中间 spec 的格式转换,这样就可以转换成各种打包的 spec 规范了。
去掉某些晦涩的,针对于某一个包管理器的spec技巧,全部都统一成规范格式..(规范格式即为每个包管理 ...

恩,我的想法差不多。如果自己不能完全做一个包系统,那就把 rpm 在封装一次,提供一个外壳环境,哪怕完全人肉提供一个标准也好很多。

不过我觉得最有用的是类似 gentoo 的 world 文件,里面储存所有手动安装的内容。卸载某个程序后,可以通过这个 world 整理出一来手动安装和依赖安装的系统包数据。
也就是说,安装 A 包时,B 包被依赖后同时安装。rpm 卸载 A 时不会卸载 B 的。但通过这个 world 文件,就可以重新通过依赖关系整理出 B 包已经没有被依赖,可以卸载了。

之后还有就是全部 rpm 进行统一整理,分类出来,比如 KDE ,每一个版本都会总,设置一个 kde-meta 的空包进行依赖,之后把这个 kde-meta 放进 world 文件。以此类推,整个系统分成几个独立的 meta 包被依赖后一起扔进 world 里面来进行版本控制。

我做 rpm 包管理的网站也就是为了这个目的而设计的,但 php 的功能实现太难了。
我在考虑重写了,以前的都放弃。这东西最好是写成本地程序,直接能操作 yum 的数据库文件是最好的。
回复

使用道具 举报

发表于 2011-6-9 22:42:12 | 显示全部楼层
原帖由 jiangtao9999 于 2011-6-9 19:59 发表

恩,我的想法差不多。如果自己不能完全做一个包系统,那就把 rpm 在封装一次,提供一个外壳环境,哪怕完全人肉提供一个标准也好很多。

不过我觉得最有用的是类似 gentoo 的 world 文件,里面储存所有手动安装的内容。卸载某 ...

yum好像能实现你说的这个,或者通过调用rpm本身的查询也可以.
回复

使用道具 举报

发表于 2011-6-10 08:48:29 | 显示全部楼层
原帖由 sejishikong 于 2011-6-9 10:42 PM 发表

yum好像能实现你说的这个,或者通过调用rpm本身的查询也可以.

yum 调用我要的是调用 yum 服务器端提供的完整数据库。rpm 只有本地已经安装的数据库。yum 调用起来貌似比较麻烦啊……
回复

使用道具 举报

发表于 2011-6-10 10:34:07 | 显示全部楼层
yum可以分组安装,好像就和你说的这个有点儿类似。
回复

使用道具 举报

发表于 2011-6-10 13:13:28 | 显示全部楼层
原帖由 sejishikong 于 2011-6-9 10:30 发表
我对deb/ebuild/aur都不熟悉啊。
现在也没整理出spec到底那些地方需要规范。
大家提提建议。rpm和其它包管理相比,那些地方需要改的。

1、2、我经常用其他版本的包管理器,但是对其他包管理器的spec文件也是不太熟悉,所以这需要大家来一起规范。
3、不是说rpm需要更改,而是我们需要描述一个不依赖任何一个包管理器的协议式的文件。这个协议式文件暂且代号MGCspec吧,具体的实现需要某一个包管理器去实现。
我们不写包管理器,但是要规范包管理器的spec书写. 因为spec的精华就在于包的管理策略

4、比如我们的包管理器需要 name source patch,包之间的常用依赖有依赖和被依赖,有安装前的操作(pre script),有安装后的操作(post script),有卸载时相关的操作(trigger)等等,取所有包管理器的长处,做一个通用的规定。
回复

使用道具 举报

发表于 2011-6-10 21:09:38 | 显示全部楼层
其实我们创造的系统不是一个商业系统,所以它的组成是哪种格式并不是非常重要,我们并不是需要用格式来把自己和其它发行版本很严格地区分开来,更何况很多的工具软件使用 rpm 包方式进行安装。YLMF 可以开发系统开放自己的安装标准,并且指望别人为他们标准买单,可是 MGC 不行,我们没有可能去唯护自己的标准,更多时候我们做的都是在别人的标准下进行修正、平衡。
MGC 不是没有自己的特色,肯定是有的,当系统稳定并被大多数人所尊重和应用时,再来提标准吧,我们不是山寨,没有那么多的山寨首领的气质。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-25 16:54 , Processed in 0.105432 second(s), 12 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表