如何把一个源码打成多个包以及替换系统里旧的包

编译打包和其他
回复
colinhd8
帖子: 5
注册时间: 2013-11-02 17:02
系统: Ubuntu 13.10

如何把一个源码打成多个包以及替换系统里旧的包

#1

帖子 colinhd8 » 2013-11-02 17:17

ubuntu里的软件很多都挺旧的,想要最新版的话最直接的就是自己拿源码编译然后打包。
但问题是系统里的包,很多都是一个软件会有N多个包,差不多是一个模块一个包,你可以自由选择需要哪些模块,然后安装相应的包。而我自己打包的话,也想要拆分成这么多个包,然后需要什么就安装啥包,不知道这个是怎么打的。打成单个包倒是已经实现了。

之所以要模仿打多个包,是因为我想用自己打出来的包替换系统里旧的包。但如果只打成一个的话,那其它依赖到这个包的软件可能还是会使用旧的包。比如:
A软件被打包成a-sqlite, a-mysql, a-db5等多个包。而我自己来打的话,可能就打成一个包A。然后别人依赖A这个软件包的,那应该会使用我打的包,但另外依赖a-mysql等的软件,它可能还是会使用旧a-mysql包,那就达不到我的目的了。

有知道有没有人研究过这个问题。

总之最终目的就是想自己编译最新源码,打包,然后替换掉系统里旧的版本。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 如何把一个源码打成多个包以及替换系统里旧的包

#2

帖子 eexpress » 2013-11-02 20:20

既然会打一个包,多个打一起,不是一样的嘛。文件放好目录就是。要去掉旧包,依赖里面写上冲突包名就是。

你替换系统的,不担心系统的软件不兼容,出错?
● 鸣学
colinhd8
帖子: 5
注册时间: 2013-11-02 17:02
系统: Ubuntu 13.10

Re: 如何把一个源码打成多个包以及替换系统里旧的包

#3

帖子 colinhd8 » 2013-11-06 13:41

eexpress 写了:既然会打一个包,多个打一起,不是一样的嘛。文件放好目录就是。要去掉旧包,依赖里面写上冲突包名就是。

你替换系统的,不担心系统的软件不兼容,出错?
我是要把一个软件拆成多个包。不知道怎么拆啊。比如sqlite3,它会分成libsqlite3-tcl, libsqlite3-ruby等。
写上冲突包名,它是不是就会把冲突的包给删了?
我指的系统软件是指已经在官方仓库里存在并且安装的。比如sqlite3。然后我想把sqlite3全删了,用我自己编译的安装。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 如何把一个源码打成多个包以及替换系统里旧的包

#4

帖子 eexpress » 2013-11-06 14:35

拆开,就和系统的源不兼容了。会直接影响上层的依赖。如果其他的包,依赖sqlite3,你就不好搞了。
dpkg-deb 打包,只认目录结构,随便拆。

写上冲突包,是会让你确认删除的。
● 鸣学
头像
zhw2101024
帖子: 1849
注册时间: 2009-03-28 16:10
系统: Arch debian win7
联系:

Re: 如何把一个源码打成多个包以及替换系统里旧的包

#5

帖子 zhw2101024 » 2013-11-06 16:04

有这种需求还是换Arch吧,abs随便折腾。或者再激进点用gentoo
灵活性和稳定性本来就不能完全兼顾的。
回复