debian源码制作*.deb与上传仓库安装
2014-12-22 17:25
351 查看
首先创建一个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中配置的包名)
在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文件
- sharepoint 如何制作 上传 安装 “网站模板” 和 “网站集模板”(转)
- 在 Debian 上源码编译和安装 Nginx+PHP+FastCGI+MySQL
- 制作debian安装盘
- 制作并安装一个包含Tweak和app的deb安装包。
- 转载:在Debian下源码安装apache2+PHP5+MySQL
- Windows制作U盘在Thinkpad T60上安装Debian 7 (Wheezy)
- 备份及恢复Linux(使用tar) | 安装Debian(.deb)软件包
- 制作U盘DEBIAN6.0.3安装盘
- Linux,debian下源码编译安装gcc + apache2.2.6+php5.1.16+mysql5.0.
- 用FAI制作debian自动安装盘
- 源码方式Squid安装与配置(Debian/ubuntu)
- debian下使用dpkg来安装/卸载deb包
- debian下使用dpkg来安装/卸载deb包
- debian下mysql5.1的源码安装
- Debian 源码安装xen 3.3.1
- Debian下Mysql源码安装出现No curses/termcap library found报错的解决办法【zz】
- debian6下zabbix1.8.6源码安装
- debian下源码编译安装apache
- 制作debian安装盘