金色的骷髅 发表于 2015-1-16 16:09:59

linux教程之RPM制造宝典(3)

功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间。
要想制造RPM格局的软件包,需利用以下命令格局:
  rpm-bX[制造选项1制造选项2...]形貌文件1形貌文件2...

  注:-bX可用-tX交换,效果有所分歧:利用-b时,必要在命令行上指定软件包形貌文件;而利用-t时,在命令行上必要指定的不是软件包形貌文件,而是含有此形貌文件的TAR格局的包裹文件(必需用gzip紧缩),RPM在筹办制造软件包时,会主动今后包裹文件中提取形貌文件,依据个中的建包指令,天生RPM格局的软件包。注重:此形貌文件必需以.spec为后缀,个中必需有Source域,而且此域界说的源程序包必需寄存在以后目次下,不然的话,RPM将报错加入。
  注重,-bX与-tX傍边的X,取分歧的值时,RPM将实行分歧的操纵:(上面各个例子均对LZE的形貌文件lze-6.0-2.spec举行操纵,有的则经由过程管道手艺,用nl命令给输入加下行号,以便注释)
  1)X=p时,唆使RPM实行形貌文件中的预处置段(%prep)的剧本程序。该剧本程序一样平常用来解压源程序包,而且为源程序打补钉,晋级源程序。
  #rpm-bplze-6.0-2.spec2>&1|nl
  1Executing:%prep
  2+umask022
  3+cd/usr/src/dist/BUILD
  4+echo预处置剧本程序(prep)入手下手实行
  5预处置剧本程序(prep)入手下手实行
  6+cd/usr/src/dist/BUILD
  7+rm-rflze-6.0
  8+/bin/gzip-dc/usr/src/dist/SOURCES/lze-6.0-2.src.tgz
  9+tar-xvvf-
  10drwxr-xr-xroot/root02001-11-0216:02lze-6.0/
  11-rw-------root/root2462262001-11-0216:00lze-6.0/lze.c
  12-rw-------root/root982492001-11-0216:00lze-6.0/lzeime.wb.c
  13-rw-------root/root3399022001-11-0216:00lze-6.0/lzeime.py.c
  14-rw-r--r--root/root12832001-11-0216:00lze-6.0/funkey.def
  15-rwxr--r--root/root2502001-11-0216:00lze-6.0/inputme.def
  16-rw-r--r--root/root8132742001-11-0216:00lze-6.0/wbzc.dat
  17-rw-------root/root4742001-11-0216:02lze-6.0/makefile
  18+STATUS=0
  19+
  20+cdlze-6.0
  21++/usr/bin/id-u
  22+
  23+/bin/chown-Rhfroot.
  24++/usr/bin/id-u
  25+
  26+/bin/chgrp-Rhfroot.
  27+/bin/chmod-Rfa+rX,g-w,o-w.
  28+exit0
  #
  注:本例中第1行显现的"Executing:%prep"标明RPM入手下手实行预处置段的剧本程序。例中行号后那些以加号(+)入手下手的行均为预处置段剧本程序的指令,别的内容则为指令实行所输入的了局。从预处置段剧本程序所实行的指令,我们就能够看出RPM正在做甚么:
  第2行:设置文件创立掩码;
  第3行:转到RPM默许的编译目次;
  第4行:回显字符串,这才是用户所写的预处置段剧本程序的入手下手,第2,3行均是RPM增添的指令;
  第6-27行:为%setup所扩大出来的指令及其实行了局,个中能够看到RPM用gzip命令解压LZE的源程序包(第8行),尔后用tar命令睁开源程序包(第9行)。
  第28行:一般加入,前往值为0。
  2)X=l时,唆使RPM反省文件段(%files),看个中的文件是不是存在。假如不存在,则RPM会报错加入。
  #rpm-bl-vvlze-6.0-2.spec|nl
  1Processingfiles:lze
  2D:File0:0100644root.root/etc/funkey.def
  3D:File1:0100644root.root/etc/inputme.def
  4D:File2:0100644root.root/usr/doc/lze-6.0-2/README
  5Filenotfound:/usr/doc/lze-6.0-2/LICENSE
  6D:File3:0100555root.root/usr/bin/lze
  7D:File4:0100511root.root/usr/bin/lzeime.py
  8D:File5:0100511root.root/usr/bin/lzeime.wb
  9D:File6:0100644root.root/etc/wbzc.dat
  10Provides:lze-edit
  11PreReq:/bin/sh
  12Requires:/bin/sh
  #
  注:本例命令中利用了通用选项-vv,以输入RPM反省时的调试信息(以行号和D:入手下手的行)。
  由上看出,RPM对文件段的一切文件一一举行反省,找到的文件显现其权限,属主和属组信息,了局发明/usr/doc/lze-6.0-2.LICENSE文件不存在,因而报堕落误(Filenotfound)(见第5行)。RPM在反省过文件后,还显现出形貌文件请求LZE供应的功效(Provides)和所需的功效(Requires)。
  3)当X=c时,唆使RPM顺次实行预处置段(%prep),编译段(%build)的剧本程序。编译段的剧本程序用来编译毗连软件的源程序,天生可实行程序,一般一个make命令充足。由于一个有优秀习气的程序员会把Makefile(程序保护文件)写好,以便别的程序员编译该软件。假如某个软件没有保护文件的话,用户要末本人写个Makefile,要末在编译段里写上软件编译与毗连的各项命令。
  4)当X=i时,唆使RPM顺次实行预处置段(%prep),编译段(%build)和安装段(%install)的剧本程序。安装段的剧本程序的义务是将编译毗连好的实行程序拷贝到得当的目次(如/bin,/usr/bin等大众实行目次),以便打包或实行。它一般实行的指令是makeinstall。
  5)当X=b时,唆使RPM顺次实行预处置段(%prep),编译段(%build),安装段(%install)的剧本程序,以后依据文件段(%files)的文件列表,将文件打包,天生RPM实行程序包,最初实行清算段(%clean)。
  #rpm-bblze-6.0-2.spec2>&1|nl
  1Executing:%prep
  2+umask022
  3+cd/usr/src/dist/BUILD
  4+echo预处置剧本程序(prep)入手下手实行
  5预处置剧本程序(prep)入手下手实行
  6+cd/usr/src/dist/BUILD
  7+rm-rflze-6.0
  8+tar-xvvf-
  9+/bin/gzip-dc/usr/src/dist/SOURCES/lze-6.0-2.src.tgz
  10drwxr-xr-xroot/root02001-11-0217:04lze-6.0/
  11-rw-------root/root2462262001-11-0216:00lze-6.0/lze.c
  12-rw-------root/root982492001-11-0216:00lze-6.0/lzeime.wb.c
  13-rw-------root/root3399022001-11-0216:00lze-6.0/lzeime.py.c
  14-rw-r--r--root/root12832001-11-0216:00lze-6.0/funkey.def
  15-rwxr--r--root/root2502001-11-0216:00lze-6.0/inputme.def
  16-rw-r--r--root/root8132742001-11-0216:00lze-6.0/wbzc.dat
  17-rw-------root/root4742001-11-0216:02lze-6.0/makefile
  18-rw-r--r--root/root12552001-11-0217:04lze-6.0/getinputme.c
  19+STATUS=0
  20+
  21+cdlze-6.0
  22++/usr/bin/id-u
  23+
  24+/bin/chown-Rhfroot.
  25++/usr/bin/id-u
  26+
  27+/bin/chgrp-Rhfroot.
  28+/bin/chmod-Rfa+rX,g-w,o-w.
  29+exit0
  30Executing:%build
  31+umask022
  32+cd/usr/src/dist/BUILD
  33+cdlze-6.0
  34+echo编译毗连剧本程序(build)入手下手实行
  35编译毗连剧本程序(build)入手下手实行
  36+make
  37cc-fwritable-strings-DUSE_AS_LZE-DFOR_LINUX-s-I/usr/zzz/src/include-DFOR_LZE_INPUTME-olze/usr/zzz/src/li-
  38bsrc/mycurses.clze.cgetinputme.c/usr/zzz/src/my.a
  39cc-DFOR_LINUX-s-I/usr/zzz/src/include-olzeime.wbgetinputme.clzeime.wb.c/usr/zzz/src/my.a
  40lzeime.wb.c:Infunction`do_service:
  41lzeime.wb.c:1409:warning:passingarg5of`bsearchfromincompatiblepointertype
  42cc-DFOR_LINUX-s-I/usr/zzz/src/include-olzeime.pygetinputme.clzeime.py.c/usr/zzz/src/my.a
  43+exit0
  44Executing:%install
  45+umask022
  46+cd/usr/src/dist/BUILD
  47+cdlze-6.0
  48+echo安装剧本程序(install)入手下手实行
  49安装剧本程序(install)入手下手实行
  50+makeinstall
  51installing...
  52done
  53+exit0
  54Processingfiles:lze
  55FindingProvides:(using/usr/lib/rpm/find-provides)...
  56FindingRequires:(using/usr/lib/rpm/find-requires)...
  57Provides:lze-edit
  58PreReq:/bin/sh
  59Requires:/bin/shld-linux.so.2libc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.1)
  60Wrote:/usr/src/dist/RPMS/i386/lze-6.0-2.i386.rpm
  61Executing:%clean
  62+umask022
  63+cd/usr/src/dist/BUILD
  64+cdlze-6.0
  65+echo建包停止后清算剧本程序(clean)入手下手实行
  66建包停止后清算剧本程序(clean)入手下手实行
  67+exit0
  #
  注:本例中,各行注释以下:
  第1行:显现RPM入手下手实行预处置段(%prep);
  第2-29行:为预处置段(%prep)剧本程序实行的命令与了局,命令前有加号(+),了局后面则没有。预处置完成了LZE源程序包的解紧缩(gzip-dc)与包的睁开(tar-xvvf),从而为源程序的编译打下了基本;
  第30行:RPM暗示入手下手实行编译段(%build);
  第31-43行:为编译段(%build)剧本程序实行的命令与了局。剧本程序实行的make保护命令,该命令实行了cc编译程序,以编译与毗连LZE软件;
  第44行:RPM暗示入手下手实行安装段(%install);
  第45-53行:为安装段(%install)剧本程序实行的命令与了局。本段程序实行了makeinstall命令,将LZE的实行程序等文件拷贝到体系目次下;
  第54行:RPM显现:入手下手处置LZE的文件(为%files文件段的内容);
  第55-59行:RPM使用/usr/lib/rpm/find-provides程序查找LZE供应的功效,又使用/usr/lib/rpm/find-requires查找LZE所依附的功效,以设定LZE的依附干系;
  第60行:制造完成LZE实行程序包,文件名为lze-6.0-2.i386.rpm,在/usr/src/dist/RPMS/i386目次下;
  第61行:RPM显现:入手下手实行清算段(%clean)剧本程序,本段程序用于清算一时文件;
  第62-67行:为清算段(%clean)剧本程序实行的命令与了局。
  从上我们能够分明看出RPM制造软件包的事情流程:预处置段,编译段,安装段,软件包制造,清算段。
  6)当X=s时,唆使RPM创建源码包。RPM源码包的内容包含软件包形貌文件(SPEC),软件源程序,软件补钉程序,图标文件等几项。创建源码包不必要实行软件包形貌文件中的各个功效段,仅需将所需文件包括到包中便可。
  #rpm-bslze-6.0-2.spec
  Wrote:/usr/src/dist/SRPMS/lze-6.0-2.src.rpm
  #rpm-qplv/usr/src/dist/SRPMS/lze-6.0-2.src.rpm
  -rw-------rootroot206711月215:44lze-6.0-2.spec
  -rw-r--r--rootroot53870611月217:05lze-6.0-2.src.tgz
  #
  注:本例中,利用rpm-bs命令天生了LZE源码包lze-6.0-2.src.rpm(在RPM尺度源码目次/usr/src/dist/SRPMS下),然后用rpm-qplv命令查询源码包中所含的文件信息,从中能够看到LZE源码包中有两个文件:一个是软件包形貌文件lze-6.0-2.spec,一个是LZE源代码包lze-6.0-2.src.tgz(TAR打包再用gzip紧缩),此文件由形貌文件中的Source域断定。
  7)当X=a时,唆使RPM顺次实行预处置段(%prep),编译段(%build),安装段(%install)剧本程序,以后师长教师成RPM源码包,再依据文件段(%files)的文件列表,将文件打包,天生RPM实行程序包,最初实行清算段(%clean)剧本程序,扫除两头文件。此命令实行的了局相称于先实行rpm-bs命令天生源码包,再实行rpm-bb命令天生实行码包。
  选项列表
  选项详解
  通用选项的注释见<<精晓RPM之二--安装篇>>,本文不再赘述。
  1.--short-circuit:单步实行
  此选项的目标在于单步实行功效段,仅合用命令为RPM-bc(或-tc)和-bi(或-ti)时。当用rpm-bc--short-circuit命令时,RPM将不再实行预处置段(%prep)的剧本程序,间接实行编译段(%build)的剧本程序。当用rpm-bi--short-circuit命令时,RPM将不再实行预处置段(%prep)和编译段(%build)的剧本程序,仅实行安装段(%install)的剧本程序。
  为何要利用这个选项?其缘故原由多是源程序包中的文件有成绩,招致RPM在编译或安装过程当中呈现了如许或那样的毛病,如不克不及单步实行,则没法扫除这些毛病。单步实行后,用户能够进进源程序地点的目次,检察源程序,修正毛病,然后再用tar命令天生一个准确的源程序包,掩盖失落原包便可。如许,RPM再制造时就不会有成绩了。
  2.--timecheck:设置工夫反省值
  该选项的用法是:--timecheck
  注:为反省的工夫段,单元是秒,如--timecheck600设置反省的工夫段为600秒,即10分钟。
  设置工夫反省值的目标,在于查验打包文件是不是是指准时间段内发生的新文件,假如不是,则RPM会发生告诫信息,提示用户某个文件不是新文件,而是老文件,多是某种毛病招致的。这类毛病,多是因为makefile(保护文件)或形貌文件中的安装段剧本程序誊写不准确,从而使某个程序不克不及准确安装到指定目次,因此RPM打包时老是援用老的程叙文件。以下面的例子:
  #rpm-bl--timecheck600lze-6.0-2.spec
  Processingfiles:lze
  warning:TIMECHECKfailure:/usr/bin/lze
  FindingProvides:(using/usr/lib/rpm/find-provides)...
  FindingRequires:(using/usr/lib/rpm/find-requires)...
  Provides:lze-edit
  PreReq:/bin/sh
  Requires:/bin/shld-linux.so.2libc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.1)
  #
  注:本例中使用RPM反省文件列表,看哪一个文件是在10分钟之前发生的老文件,了局RPM收回告诫信息:“warning:TIMECHECKfailure:/usr/bin/lze”,这申明文件/usr/bin/lze工夫反省呈现毛病,这是个老文件。经查,是makefile的成绩,内里少了一句“cplze/usr/bin”。修改后,再次编译毗连程序,再举行工夫反省就没有这个成绩了。
  3.--buildroot:设定建包用根目次
  该选项的用法是:
  --buildroot

  注:
为用户指定的建包用的根目次。
  此选项相称于在软件包形貌文件的文件头加上一行:
  Buildroot:
  只不外在命令行上设定对照自在而已。
  经由过程设定建包用根目次,一样平常用户也能够创建那些只要超等用户(root)才干创建的RPM包了。上面以一般用户zzz创建LZE软件包为例,申明一下这类情势的包的创建历程。
  1)在用户zzz的HOME目次(/usr/zzz)下,创建RPM建包所用的目次:
  $cd/usr/zzz
  $mkdir-prpm/{BUILD,RPMS/i386,SOURCES,SPECS,SRPMS}
  $
  2)拷贝形貌文件lze-6.0-2.spec到rpm/SPECS目次,拷贝源程序包lze-6.0-2.src.tgz到rpm/SOURCES目次。
  $cd/usr/zzz
  $cp/root/lze-6.0-2.specrpm/SPECS
  $cp/root/lze-6.0-2.src.tgzrpm/SOURCES
  $
  3)创建.rpmmacros文件,编纂它:
  $cd/usr/zzz
  $vi.rpmmacros
  在此文件中增添一行:
  %_topdir/usr/zzz/rpm
  用于断定RPM建包用的顶层目次为/usr/zzz/rpm。
  4)转到形貌文件目次,编纂修正lze-6.0-2.spec安装段的剧本程序:
  $cd/usr/zzz/rpm/SPECS
  $vilze-6.0-2.spec
  $
  用于断定RPM建包用的顶层目次为/usr/zzz/rpm。
  安装段剧本程序修正为:(原make命令被正文失落)
  %install
  echo"安装剧本程序(install)入手下手实行"
  #makeinstall
  mkdir-p$RPM_BUILD_ROOT/usr/bin
  mkdir-p$RPM_BUILD_ROOT/etc
  mkdir-p$RPM_BUILD_ROOT/usr/doc/lze-6.0
  cplzelzeime.wblzeime.py$RPM_BUILD_ROOT/usr/bin
  cpinputme.deffunkey.defwbzc.dat$RPM_BUILD_ROOT/etc
  cp/usr/doc/lze-6.0/*$RPM_BUILD_ROOT/usr/doc/lze-6.0
  注:剧本程序中,利用建包用根目次的情况变量RPM_BUILD_ROOT,接踵在建包用根目次下创立多少子目次(usr/bin,etc,usr/doc/lze-6.0),然后拷贝程序或文件到响应的子目次中,从而完成完装。5)选用--buildroot选项,实行RPM建包命令:
  $cd/usr/zzz/rpm/SPECS
  $rpm-bb--buildroot/usr/zzz/tmplze-6.0-2.spec
  Executing:%prep
  +umask022
  +cd/usr/zzz/rpm/BUILD
  +echo预处置剧本程序(prep)入手下手实行
  预处置剧本程序(prep)入手下手实行

12下一页


尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。

金色的骷髅 发表于 2015-1-16 17:31:16

linux教程之RPM制造宝典(3)

如果你学不好的话,你在linux中开发的机会就很少,或者说几乎没有,它的优势就消失了,然后随着时间的流逝,你就会全部忘记她;
  +cd/usr/zzz/rpm/BUILD
  +rm-rflze-6.0
  +/bin/gzip-dc/usr/zzz/rpm/SOURCES/lze-6.0-2.src.tgz
  +tar-xvvf-
  drwxr-xr-xroot/root02001-11-0217:04lze-6.0/
  -rw-------root/root2462262001-11-0216:00lze-6.0/lze.c
  -rw-------root/root982492001-11-0216:00lze-6.0/lzeime.wb.c
  -rw-------root/root3399022001-11-0216:00lze-6.0/lzeime.py.c
  -rw-r--r--root/root12832001-11-0216:00lze-6.0/funkey.def
  -rwxr--r--root/root2502001-11-0216:00lze-6.0/inputme.def
  -rw-r--r--root/root8132742001-11-0216:00lze-6.0/wbzc.dat
  -rw-------root/root4742001-11-0216:02lze-6.0/makefile
  -rw-r--r--root/root12552001-11-0217:04lze-6.0/getinputme.c
  +STATUS=0
  +
  +cdlze-6.0
  ++/usr/bin/id-u
  +
  ++/usr/bin/id-u
  +
  +/bin/chmod-Rfa+rX,g-w,o-w.
  +exit0
  Executing:%build
  +umask022
  +cd/usr/zzz/rpm/BUILD
  +cdlze-6.0
  +echo编译毗连剧本程序(build)入手下手实行
  编译毗连剧本程序(build)入手下手实行
  +make
  cc-fwritable-strings-DUSE_AS_LZE-DFOR_LINUX-s-I/usr/zzz/src/include-DFOR_LZE_INPUTME-olze/usr/zzz/src/libsrc/mycurses.clze.cgetinputme.c/usr/zzz/src/my.a
  cc-DFOR_LINUX-s-I/usr/zzz/src/include-olzeime.wbgetinputme.clzeime.wb.c/usr/zzz/src/my.a
  lzeime.wb.c:Infunction`do_service:
  lzeime.wb.c:1409:warning:passingarg5of`bsearchfromincompatiblepointertype
  cc-DFOR_LINUX-s-I/usr/zzz/src/include-olzeime.pygetinputme.clzeime.py.c/usr/zzz/src/my.a
  +exit0
  Executing:%install
  +umask022
  +cd/usr/zzz/rpm/BUILD
  +cdlze-6.0
  +echo安装剧本程序(install)入手下手实行
  安装剧本程序(install)入手下手实行
  +mkdir-p/usr/zzz/tmp/usr/bin
  +mkdir-p/usr/zzz/tmp/etc
  +mkdir-p/usr/zzz/tmp/usr/doc/lze-6.0
  +cplzelzeime.wblzeime.py/usr/zzz/tmp/usr/bin
  +cpinputme.deffunkey.defwbzc.dat/usr/zzz/tmp/etc
  +cp/usr/doc/lze-6.0/LICENSE/usr/doc/lze-6.0/README/usr/zzz/tmp/usr/doc/lze-6.0
  +exit0
  Processingfiles:lze
  FindingProvides:(using/usr/lib/rpm/find-provides)...
  FindingRequires:(using/usr/lib/rpm/find-requires)...
  Provides:lze-edit
  PreReq:/bin/sh
  Requires:/bin/shld-linux.so.2libc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.1)
  Wrote:/usr/zzz/rpm/RPMS/i386/lze-6.0-2.i386.rpm
  Executing:%clean
  +umask022
  +cd/usr/zzz/rpm/BUILD
  +cdlze-6.0
  +echo建包停止后清算剧本程序(clean)入手下手实行
  建包停止后清算剧本程序(clean)入手下手实行
  +exit0
  $
  注:RPM建包乐成后,天生了/usr/zzz/rpm/RPMS/i386/lze-6.0-2.i386.rpm包裹文件,
  经由过程RPM的查询命令,我们就能够晓得该包与由超等用户建成的包内容毫无二致:
  $rpm-qplv/usr/zzz/rpm/RPMS/i386/lze-6.0-2.i386.rpm
  -rw-r--r--rootroot128311月609:24/etc/funkey.def
  -rwxr-xr-xrootroot25011月609:24/etc/inputme.def
  -rw-r--r--rootroot81327411月609:24/etc/wbzc.dat
  -rwxr-xr-xrootroot40863211月609:24/usr/bin/lze
  -rwxr-xr-xrootroot8292011月609:24/usr/bin/lzeime.py
  -rwxr-xr-xrootroot3856811月609:24/usr/bin/lzeime.wb
  -rw-r--r--rootroot121511月609:24/usr/doc/lze-6.0/LICENSE
  -rw-r--r--rootroot369011月609:24/usr/doc/lze-6.0/README
  $
  如今我们能够说,一般用户也能够自在地创建各类情势的RPM软件包了!
  4.--target:设定方针平台
  该选项的用法为:--target系统-平台-操纵体系
  注:RPM制造出来的软件包默许的系统为i386,平台为pc,操纵体系为linux。假如用户想加以改动,就必要利用此选项来断定一下,以下例:
  #rpm-bb--targeti686-pc-solaris--quietlze-6.0-2.spec
  创立方针平台:i686-pc-solaris
  正在创立方针:i686-pc-solaris
  #
  本例设定天生的RPM包合用的方针平台为:i686-pc-solaris(即系统为i686,平台为pc,操纵体系为solaris)。注重:必需在/usr/src/dist/RPMS目次下创立一个i686的子目次,没有指定系统的子目次,RPM将没法天生软件包。我们能够查询一下天生的软件包,看其合用的系统与操纵体系是甚么:
  #rpm-qp--qf"archis%{arch}nosis%{os}n"/usr/src/dist/RPMS/i686/lze-6.0-2.i686.rpm
  archisi686
  osissolaris
  #
  从输入上能够看到,其系统与操纵体系恰是我们所设定的。
  5.--quiet:只管削减信息输入
  此选项的目标,是让RPM削减信息的输入。利用此选项后,假如没有毛病产生,RPM就不会输入过剩的信息,这时候的RPM也显得对照“宁静”(quiet)了。
  $rpm-bl--quietlze-6.0-2.spec
  $
  6.--clean:实行文件清算
  假如软件包形貌文件的清算段(%clean)没有删除一时文件的命令,那末RPM建包停止后那些一时文件仍是存在的,占用了必定的空间。假如想让RPM主动删除那些一时文件,能够在建包时利用--clean选项。此选项实行一条命令,即:
  rm-rf软件名-版本号
  用它来删除"软件名-版本号"目次及该目次下的一切文件。这个"软件名-版本号"目次,也即RPM默许的寄存解压后的源程序的目次。
  #rpm-bl--cleanlze-6.0-2.spec
  Processingfiles:lze
  FindingProvides:(using/usr/lib/rpm/find-provides)...
  FindingRequires:(using/usr/lib/rpm/find-requires)...
  Provides:lze-edit
  PreReq:/bin/sh
  Requires:/bin/shld-linux.so.2libc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.1)
  Executing:--clean
  +umask022
  +cd/usr/src/dist/BUILD
  +rm-rflze-6.0
  +exit0
  注:例中的“Executing:--clean”暗示RPM入手下手实行本人的文件清算操纵。
  7.--rmsource:删除源程序及形貌文件
  此选项用于唆使RPM在建包后删除软件源程序和包形貌文件,软件源程序由包形貌文件中的Source域界说。此选项也可独自利用,如:
  #rpm--rmsourcelze-6.0-2.spec
  #lslze-6.0-2.spec../SOURCES/lze-6.0-2.src.tgz
  ls:lze-6.0-2.spec:文件或目次不存在
  ls:../SOURCES/lze-6.0-2.src.tgz:文件或目次不存在
  #
  8.--sign:软件包内置数字署名
  此选项用于在软件包内增加PGP数字署名,经由过程数字署名,用户能够校验软件包是不是原装,是不是修正过。要利用PGP数字署名,必需先安装好PGP使用程序及发生本人的密钥对。(有关数字署名的内容,详见<<精晓RPM之八--署名篇>>)
  利用此选项建包时,RPM会请求输出暗码,考证准确后入手下手实行建包的系列操纵,在建包前会发生数字署名,以便写进包中。请看下例:(省略很多输入,......暗示)
  #rpm-bb--signlze-6.0-2.spec
  Enterpassphrase:mypass
  Passphraseisgood.
  Executing:%prep
  ......
  Executing:%build
  ......
  Executing:%install
  ......
  Processingfiles:lze
  ......
  Requires:/bin/shld-linux.so.2libc.so.6
  Generatingsignature:1002
  GeneratingsignatureusingPGP.
  PrettyGoodPrivacy(tm)Version6.5.8
  (c)1999NetworkAssociatesInc.
  UsestheRSAREF(tm)Toolkit,whichiscopyrightRSADataSecurity,Inc.
  ExportofthissoftwaremayberestrictedbytheU.S.government.Wrote:/root/test/RPMS/i386/lze-6.0-2.i386.rpm
  Executing:%clean
  ......
  #
  注:例中请求输出暗码,输出mypass后校验乐成,以后RPM入手下手建包操纵。(实践上,mypass在屏幕上其实不显现出来)例中的Generatingsignature之下的几行就是发生数字署名时输入的器材。
  别的建包相干的命令
  别的建包相干的命令有两个,它们都是针对RPM格局的源码包举行操纵的,实行时先安装源码包,然后再依据软件包形貌文件举行下一步的事情。1.重编译命令:
  用法为:rpm--recompileRPM源码包1RPM源码包2...
  如:
  rpm--recompilelze-6.0-2.src.rpm
  此命令实行时,起首安装此源码包,然后顺次实行源码包内软件包形貌文件的预处置段(%prep),编译段(%build),安装段(%install)的剧本程序。此命令相称于以下两条命令:
  1)rpm-ilze-6.0-2.src.rpm
  2)rpm-bilze-6.0-2.spec
  2.重修立命令:
  用法为:rpm--rebuildRPM源码包1RPM源码包2...
  如:
  rpm--rebuildlze-6.0-2.src.rpm
  重编译命令实行后其实不创建新的RPM软件包,而此重修立命令实行后则会制造出一个新的RPM软件包。重修立命令实行时,起首安装RPM源码包,然后顺次实行源码包内软件包形貌文件的预处置段(%prep),编译段(%build),安装段(%install),清算段(%clean)的剧本程序,天生一个新的RPM实行包,最初删除源程序包,形貌文件及别的一时文件。此命令相称于以下两条命令:
  1)rpm-ilze-6.0-2.src.rpm
  2)rpm-bb--clean--resourcelze-6.0-2.spec</P></p>上一页12


初学阶段只要把上课时候学习过的命令练熟就可以了.单靠学习各种命令而成为高手是不可能的。

若相依 发表于 2015-1-18 18:50:31

用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。

飘灵儿 发表于 2015-1-27 17:41:41

为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。

因胸联盟 发表于 2015-2-5 14:32:29

Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。

只想知道 发表于 2015-2-12 07:06:08

我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。

灵魂腐蚀 发表于 2015-3-3 01:09:37

把这个问题放在其他Linux社区请求帮助也是一种选择。如果Linux得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。

山那边是海 发表于 2015-3-11 08:54:15

如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。

莫相离 发表于 2015-3-18 03:45:25

选择一些适于初学者的Linux社区。

小女巫 发表于 2015-3-25 12:01:37

下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
页: [1]
查看完整版本: linux教程之RPM制造宝典(3)