发行软件
1.打补丁(patch)
2.发布源代码(tarball)
3.发布二进制代码包(rpm或deb等)
1.用patch命令发行软件
diff -c version_old.c version_new.c > diffs.patch
升级:
patch version_old.c diffs.patch
回退:
patch -R version_old.c diffs.patch
2.用tar归档gzip压缩成tarballs文件
tar cvf myapp-1.0.tar *.c *.h name.N Makefile …
gzip myapp-1.0.tar.gz
或
tar zcvf myapp-1.0.tgz *.c *.h name.N Makefile …
解包
tar zxvf myapp-1.0.tgz
标准源代码软件包.tar.gz .tar.bz2 .tgz等的安装:
./configure
./configure --prefix=$dir #用来更改安装目录
make
make install
非标准源代码软件包.tar.gz .tar.bz2 .tgz的安装:
先查看readme文件
./setup或./install
3.RPM软件包(一般是二进制代码)
命名规范:
Name-version-release.architecture.rpm
Name:软件包的通用名称
Version:该软件的版本号
Release:软件包的RPM版本号
Architecture:程序的架构
Architecture=i386: 表示基于inter系统
Architecture=noarch: 表示不针对特定架构
Architecture=src: 表示是源代码软件包
创建rpm软件包三步:
收集软件
创建spec文件
用rpmbuild命令建立rpm软件包
收集软件:
在makefile文件中添加打包的部分(二进制文件和手册):
dist:myapp-version.tar.gz
myapp-version.tar.gz:myapp myapp.1
-rm –rfmyapp-version
mkdirmyapp-version
cp *.c*.h *.1 Makefile myapp-version
tar zcvf$@ myapp-version
make dist
将tarballs复制到RPM的SOURCES文件中
cpmyapp-version.tat.gz /usr/src/SYSTEM/SOURCES
RPM的目录:
SOURCES:程序的源代码
SPECS:放spec文件
BUILD:rpmbuild在这里建立软件
RPMS:rpmbuild将创建的二进制RPM软件包放在这里
SRPMS:rpmbuild将rpm源代码RPM软件包放这里
创建myapp.spec文件:
关注一些重要的选项就可以:
#this isthe intradoction
name:
version:
release:
#set somevalue
summary:one line
%description:few lines
provides: thefunction of the software
requires: dependon what
source: %{name}-%{version}.tar.gz
buildroot: ${_tmppath}/%{name}-%{version}-root
#build thepackage
%prep
%setup –q
%build
make
%install
mkdir –p$RPM_BUILD_ROOT%{_bindir}
mkdir –p$RPM_BUILD_ROOT%{_mandir}
install–m755 myapp $RPM_BUILD_ROOT%{_bindir}/myapp
install–m755 myapp.1 $RPM_BUILD_ROOT%{_mandir}/myapp.1
%clean
rm –rf$RPM_BUILD_ROOT
%post
mail root–s “myapp installed – please register” <dev/null
%files
%{_bindir}/myapp
%{_mandir}/myapp.1
将myapp.spec文件复制到SOURCES目录:
cpmyapp.spec /usr/src/SYSTEM/SOURCES
使用rpmbuild建立rpm软件包:
rpmbuild -bBuildStage spec_file
BuildStage:
-ba同时建立rpm二进制软件包和源代码软件包
-bb只建立rpm二进制软件包
-bc只编译程序,不生成rpm软件包
-bp为建立rpm软件包作准备
-bi创建rpm二进制软件包并安装
-bl检查rpm软件包中的列表
-bs只建立rpm源代码软件包
rpmbuild -ba myapp.spec
安装rpm软件包:
安装:
rpm -Uhv name-version-release.architecture.rpm 升级包
rpm -ivh myapp.rpm 安装包
卸载:
rpm -e name
查询:
rpm -qa name
4.DEB软件包:
收集文件:
myapp/DEBIAN/control
myapp/*.c
myapp/*.h
myapp/Makefile
…
配置控制文件myapp/DEBIAN/control:
version:
architecture:
description:
…
用dpkg命令打包:
dpkg –b myapp/ myapp.deb
安装DEB包:
安装:
dpkg -i myapp.deb
卸载:
dpkg -r myapp
查看
dpkg -l pattern
#######################################################
未完待续......