LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1383|回复: 4

请教制作Archlinux安装包的问题

[复制链接]
发表于 2007-8-13 15:12:35 | 显示全部楼层 |阅读模式
Archlinux的包制作挺有弹性, 我喜欢, 但有没有自动化一些的工具或是脚本呢? 我猜Archlinux包管理员也一定会使用一些自动化的工具或是自动化的脚本吧! 如debian系列这方面做的不错, 但对我来说, debian包有些让我讨厌了.
在网上找制作Archlinux包的文章太少了, 只有一二篇wiki上的翻译, 阅读后有些问题来此请教大家.

1. 请问怎样把已安装的编译安装的软件制作成二进制的软件包呢?
2. 怎样获取该软件包程序的依赖软件包呢?
     我知道可以用ldd <pkgname> 查看该软件的依赖库, 但这不太直观, 而且具体的依赖包还是不容易判断.
发表于 2007-8-13 15:42:21 | 显示全部楼层
Post by lewbing
Archlinux的包制作挺有弹性, 我喜欢, 但有没有自动化一些的工具或是脚本呢? 我猜Archlinux包管理员也一定会使用一些自动化的工具或是自动化的脚本吧! 如debian系列这方面做的不错, 但对我来说, debian包有些让我讨厌了.
在网上找制作Archlinux包的文章太少了, 只有一二篇wiki上的翻译, 阅读后有些问题来此请教大家.

1. 请问怎样把[color="Red"]已安装的编译安装的软件制作成二进制的软件包呢?
2. 怎样获取该软件包程序的依赖软件包呢?
     我知道可以用ldd <pkgname> 查看该软件的依赖库, 但这不太直观, 而且具体的依赖包还是不容易判断.


对软件打包要求对此软件比较了解,除非给自己用,不然就可能会误导其他人。一般在打包前可以仔细阅读该软件的 FAQ 和 README,里面会提到软件的依赖的,然后参考 wiki 上的文章就可以了。

P.S. 请尽量制作规范的软件包,如果软件具有一定的通用性,请上传至 AUR,谢谢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-13 16:04:50 | 显示全部楼层
Post by sssslang
对软件打包要求对此软件比较了解,除非给自己用,不然就可能会误导其他人。一般在打包前可以仔细阅读该软件的 FAQ 和 README,里面会提到软件的依赖的,然后参考 wiki 上的文章就可以了。

P.S. 请尽量制作规范的软件包,如果软件具有一定的通用性,请上传至 AUR,谢谢。


呵呵, 如果我打包的话, 一般都是给自己用, 所以比较简单.
关于获得此包的依赖性问题, 我见过一些软件包根本没有提出来要依赖哪些东西, 如我现在遇到的: sdcv, qt, wxgtk等等. 以前都是自己直接编译的, 虽然有些软件源里有, 觉得它旧了些.
回复 支持 反对

使用道具 举报

发表于 2007-8-13 16:11:20 | 显示全部楼层
1. pacman 还没有dpkg-repack的类似选项, 不怕麻烦话, 建个.PKGINFO, 把对应的文件复制到当前目录下 {use,etc...等}, 将目录结构写到.FILELIST, tar czf  pkgname-pkgver.pkg.tar.gz .PKGINFO .FILELIST usr/ etc/ ...
2. arch基本上是一个pool( http://wiki.archlinux.org/index.php/Official_Repositories ) , 依赖关系要求不是很严格, 处理的也是比较简单, 好处是比较方便调整,

  1. mv /var/lib/pacman/local/kernel26-2.6.22-1 /tmp
复制代码

后, 再pacman -Qs kernel26看看, 或者

  1. mv /var/lib/pacman/local/kernel26-2.6.22-1 /var/lib/pacman/local/kernel26-own-2.6.22-1
复制代码

并将/var/lib/pacman/local/kernel26-own-2.6.22-1/desc中NAME部分改成kernel26-own

  1. %NAME%
  2. kernel26-own
复制代码

这样kernel26就变成了kernel26-own, 非常简洁
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-13 21:59:04 | 显示全部楼层
Post by superjet
1. pacman 还没有dpkg-repack的类似选项, 不怕麻烦话, 建个.PKGINFO, 把对应的文件复制到当前目录下 {use,etc...等}, 将目录结构写到.FILELIST, tar czf  pkgname-pkgver.pkg.tar.gz .PKGINFO .FILELIST usr/ etc/ ...
2. arch基本上是一个pool( http://wiki.archlinux.org/index.php/Official_Repositories ) , 依赖关系要求不是很严格, 处理的也是比较简单, 好处是比较方便调整,

  1. mv /var/lib/pacman/local/kernel26-2.6.22-1 /tmp
复制代码

后, 再pacman -Qs kernel26看看, 或者

  1. mv /var/lib/pacman/local/kernel26-2.6.22-1 /var/lib/pacman/local/kernel26-own-2.6.22-1
复制代码

并将/var/lib/pacman/local/kernel26-own-2.6.22-1/desc中NAME部分改成kernel26-own

  1. %NAME%
  2. kernel26-own
复制代码

这样kernel26就变成了kernel26-own, 非常简洁


谢谢你的帮助.
二进制安装我也是这样想的, archlinux的包控制文件挺简洁的.就是有些繁索罢了, 不过可以自己写脚本来配置.
源码包的依赖问题吧, 呵呵, 如果安装包中README, INSTALl等文件中没有注明, 那就是一般系统都拥有的软件包, 如gcc, glib, make等一些常用包了. 但还是觉得不太妥当, 想听听下面的朋友的经验.
回复 支持 反对

使用道具 举报

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

本版积分规则

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