debian源码制作*.deb与上传仓库安装

首先创建一个hello-1.0的目录,目录名必须是<package>-<version>

在hello-1.0目录下,创建一个hello.c文件,并创建一个Makefile文件,使你使用make时,可以生成目标文件。

mkdir hello-1.0


这时,你的hello-1.0目录下就有了两个文件

hello.c  Makefile

然后使用dh_make命令,这个命令必须在hello-1.0目录下运行

apt-get install dh-make
这里说一下dh_make命令的使用:


dh_make 首先确保在操作目录(这里是hello-1.0)的上一层有一个<package>_<version>.orig.tar.gz文件。如果没有的话,可以使用-f或--createorig进行创建,这样做的目的是为了对照生成.diff文件。


如果不想生产.diff文件,可以使用--native选项直接在源文件中修改。

dh_make --native :这个命令会直接在hello-1.0目录下建立一个debian目录,但并不建议在原文件夹下修改。

输入dh_make后,会让你选择Types of packages,这里我们选择的是single binary(s)来制作单个二进制文件的包。


dh_make --createorig

dh_make会生成一个debian子目录,其中包含所有控制文件(control files)的模板,这些模板都是dh_make根据你选择的包类型从/usr/share/debhelper/dh_make中拷贝到debian包中的。


control、changlog等文件中的Maintainer等项,首先根据$DEFAULTNAME环境变量确定,如果这个变量为空,则使用$LOGNAME环境变量。作者的email选项使用$EMAIL、$DEBEMAIL或dh_make -e 来设置。


修改control文件中的包名为tonyshen

需要注意的有一下几点:首先,你需要在文件最后留下一空白行。这是至关重要的,如果没有…你的.deb包无法运行。
这些语句本身是简洁易懂的。

Package:指该软件包的名字。如果你的软件包名称有两个词,用一个连字符(-)把它们连起来。软件包的名称只能有小写的英文字母,数字(不管你相信不相信)以及"+"和"-"。



下一步,就是建立deb包了。


这里我使用的是dkpg-buildpackage进行建包,在建包之前,把Makefile的install地址改成hello-1.0的debian/hello/usr/bin/,这样在建好包后,你的可执行文件就可以存在与./usr/bin/下了。


在hello-1.0目录下运行dkpg-buildpackage -rfakeroot -tc -b


运行后,在上一层目录下可以找到一个hello_1.0_<arch>.deb的包,这个就是你要用的deb包了。


你可以使用ar或dkpg -c等查看它的内容,看看是不是你想要的,如果不是的话,说明你的配置文件有问题,建议修改debian/rules等配置文件。


上传软件仓库

scp xxx.deb mellon@10.0.1.49:~/localrepo/local/incoming/


密码是mellon


然后执行 ssh mellon@10.0.1.49 "cd localrepo/local && reprepro includedeb test incoming/*.deb"


然后设置你的机器的/etc/apt/source.list,添加下面的一行


deb http://10.0.1.49/local test main


然后执行 sudo apt-get update ,再安装你打包的软件试试(安装之前先卸载之前在本机上安装好的并且执行 sudo apt-get clean)



apt-get install tonyshen(这个是control中配置的包名)

Debian系统制作deb包通常需要使用`dpkg-buildpackage`工具或者更现代的`debuild`命令,这是基于Debian打包标准的自动化过程。以下是基本步骤: 1. **准备源码**: 确保你的软件项目有一个干净的git仓库或tarball,并遵循Debian开发流程,如有合适的控制文件(`debian/control`)。 2. **创建目录结构**: 创建一个包含`debian`目录的新目录,这个目录包含了控制文件和其他构建所需的信息。 ``` $ mkdir mysoftware-debian-packaging $ cd mysoftware-debian-packaging ``` 3. **初始化** `debian` 目录: - 在`debian`下创建`changelog`, `control`, `copyright`, 可选地还有`rules`和`debian-binary`等文件。 4. **修改`debian/control`** 文件,填写软件包基本信息,如名称、版本、依赖项等。 5. **配置`rules` 文件 (如果存在)**: 这里一般会指定如何编译、安装及清理软件。例如使用`dh autoreconf` 来自动配置configure脚本。 6. **设置`source` 和 `binary` 子目录**: 将源码放入`source`目录,例如将`mysoftware.tar.gz` 或者`mysoftware-1.0.0.tar.xz` 放在这里。 7. **构建**: 使用`debuild`命令开始打包过程,它会自动执行一系列构建步骤。 ```bash sudo debuild -us -uc # 如果你是开发者 (-b) 可以测试,发布时去掉 (-uc) ``` 8. **检查并修复错误** (如果有的话): `debuild`可能会发现一些问题,如缺失的依赖、格式错误等,需要按照提示解决。 9. **生成的.deb包**: 包含在`dists`子目录下的`pool/main/m/mysoftware/*.deb`文件就是最终的deb包了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值