国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種能用于多種系統(tǒng)下的Linux軟件包制作方法

      文檔序號(hào):6507889閱讀:360來源:國知局
      一種能用于多種系統(tǒng)下的Linux軟件包制作方法
      【專利摘要】本發(fā)明涉及一種能用于多種系統(tǒng)下的Linux軟件包制作方法。本發(fā)明首先搭建好Linux軟件的編譯環(huán)境并執(zhí)行一次預(yù)編譯、編譯和安裝,然后生成安裝文件的列表,再將已經(jīng)安裝好的目標(biāo)文件逐個(gè)拷貝到目標(biāo)文件存放目錄中,最后執(zhí)行Linux軟件包制作的命令把目標(biāo)文件生成軟件包。本發(fā)明實(shí)現(xiàn)了一種能用在多個(gè)Linux發(fā)行版的軟件包制作方法,同時(shí)還解決了傳統(tǒng)Linux軟件包制作方法每次制作都要重新執(zhí)行源代碼編譯的問題;本發(fā)明的方法可應(yīng)用于Linux軟件包制作。
      【專利說明】—種能用于多種系統(tǒng)下的Linux軟件包制作方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及Linux軟件包制作領(lǐng)域,特別指一種能用于多種系統(tǒng)下的Linux軟件 包制作方法。
      【背景技術(shù)】
      [0002]目前Linux下軟件包大多數(shù)以rpm和deb的形式制作,rpm軟件包的制作方法是: 先獲取軟件源代碼,根據(jù)源代碼中提供的依賴軟件的文檔,安裝各種編譯要依賴的文件,然 后編寫rpm軟件包的spec腳本,腳本中要完成的步驟包括:1、生成編譯目標(biāo)文件存放目錄;
      2、編譯源代碼;3、生成目標(biāo)文件列表。最后運(yùn)行rpmbuild命令,根據(jù)spec腳本生成rpm軟 件包。Deb軟件包的制作方法也差不多,deb中不使用spec文件而是用DEBIAN目錄。這些 方法存在以下的問題:1、不能同時(shí)制作rpm和deb的軟件包,對(duì)于大多數(shù)的Linux軟件來 說,其運(yùn)行是不依賴于Linux發(fā)行版的,不論是RedHat及其衍生的發(fā)行版或Debian及其衍 生的發(fā)行版,按照目前的制作方法就只能分別在兩個(gè)環(huán)境中下載源代碼、編譯和打包;2、每 制作一次軟件包都要重新執(zhí)行一次源代碼的編譯,對(duì)于大型軟件來說,這要額外花費(fèi)很多 的時(shí)間。

      【發(fā)明內(nèi)容】

      [0003]本發(fā)明解決的技術(shù)問題在于提供一種能用于多種系統(tǒng)下的Linux軟件包制作方 法,最大程度地利用開發(fā)環(huán)境中已經(jīng)安裝配置好的依賴環(huán)境,解決當(dāng)前方法不能同時(shí)制作 rpm和deb軟件包、每制作一次軟件包都要重新執(zhí)行一次源代碼的編譯等問題。
      [0004]本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:包括如下步驟:
      [0005]步驟1:搭建Linux軟件的編譯環(huán)境并執(zhí)行一次預(yù)編譯、編譯和安裝;
      [0006]步驟2:遍歷安裝目錄生成安裝文件的列表;
      [0007]步驟3:編寫相應(yīng)的rpm spec腳本文件和DEBIAN目錄所需要的文件;
      [0008]步驟4:新創(chuàng)建一個(gè)目標(biāo)文件的存放目錄;
      [0009]步驟5:根據(jù)安裝文件列表把已經(jīng)安裝好的目標(biāo)文件逐個(gè)拷貝到目標(biāo)文件存放目 錄;
      [0010]步驟6:如果是RedHat及其衍生的發(fā)行版,執(zhí)行rpmbuild命令打包;如果是 Debian及其衍生的發(fā)行版,執(zhí)行dpkg命令打包;
      [0011]步驟7:在源碼修改需要再次制作軟件包時(shí),編譯修改的部分,然后執(zhí)行步驟6。
      [0012]所述預(yù)編譯中將安裝目錄定義成一個(gè)獨(dú)立的目錄,預(yù)編譯命令中加入prefix參 數(shù);所述目標(biāo)文件的存放目錄中包含目標(biāo)文件、DEBIAN目錄和rpm spec腳本。
      [0013]所述rpm spec腳本在%install將目標(biāo)代碼拷貝到目標(biāo)文件的存放目 錄,%pre> %post、%preun> %postun根據(jù)需要添加操作;在%build部分不執(zhí)行任何操作。
      [0014]所述的DEBIAN目錄中按照deb包的規(guī)范添加所需要的腳本或?yàn)榭?,添加的腳本包 括 conffiles、postinst、postrm、preinst、prerm。[0015]所述的rpm軟件包不包含spec文件和DEBIAN目錄。
      [0016]所述的spec腳本中包含的%files內(nèi)容為文件列表,可通過安裝文件列表獲取。
      [0017]本發(fā)明的方法實(shí)現(xiàn)了多個(gè)Linux發(fā)行版的軟件包制作,同時(shí)還解決了傳統(tǒng)Linux 軟件包制作方法每次制作都要重新執(zhí)行源代碼編譯的問題,本發(fā)明只需要執(zhí)行一次編譯安裝,后續(xù)的軟件包制作能重復(fù)使用安裝的目標(biāo)文件。使用本發(fā)明的方法更能充分利用其搭建的開發(fā)環(huán)境,在軟件編譯依賴環(huán)境比較復(fù)雜的時(shí)候,能節(jié)省搭建環(huán)境的時(shí)間。
      【專利附圖】

      【附圖說明】
      [0018]下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說明:
      [0019]附圖為本發(fā)明方法流程圖。
      【具體實(shí)施方式】
      [0020]如附圖所示,本發(fā)明的方法中,先制作按照好源代碼的編譯依賴環(huán)境,執(zhí)行預(yù)編譯、編譯和安裝,在預(yù)編譯的時(shí)候定義好安裝目錄到/opt/gcloud-gl/下,定義如下:
      [0021]./configure—prefix=/opt/gcloud-gl/;
      [0022]make;
      [0023]make istall
      [0024]編寫腳本遍歷安裝目錄,生成安裝文件列表,遍歷腳本如下:
      [0025]
      #!/bin/sh
      function scandir() {
      local cur—dir parent—dir workdir workdir=$ I cd $ {workdir}
      [0026]if[${workdir} = 7"] then
      cm—dir=1”
      else
      cur_dir=$(pwd)
      fi
      for dirlist in $(ls ${ciir_dn ;) do
      if test -d $ {dirlist} then
      cd $ {dirlist}
      scandir $ {cur—dir} /$ {dirl ist} cd..else
      echo $ (cur_dirj/${dirlist}
      fi
      done
      }
      if test -d $1
      [0027]then
      scandi r SI eliftest-f$l then
      echo "you input a file but not a directory ,pis re input and try again" exit I
      else
      echo "the Directory isn't exist which you inpuUpls input a new
      one"
      exit I
      fi
      [0028]生成列表,命令如下:
      [0029]./list_alldir/var/log/>gcloud-gl.files
      [0030]編寫rpm spec腳本,如下:
      [0031]
      Name: G-C1ud-gl Summary: RPM for gl Requires: G-Cloud >= 5.1, httpd Version: 5.1 Release:1
      Group: Applications/System License: Commercial Packager: AJ
      %define debug_package % {nil }
      %description
      part for G-cloud system
      [0032]
      【權(quán)利要求】
      1.一種能用于多種系統(tǒng)下的Linux軟件包制作方法其特征在于:包括如下步驟:步驟1:搭建Linux軟件的編譯環(huán)境并執(zhí)行一次預(yù)編譯、編譯和安裝:步驟2:遍歷安裝目錄生成安裝文件的列表;步驟3:編寫相應(yīng)的rpm spec腳本文件和DEBIAN目錄所需要的文件;步驟4:新創(chuàng)建一個(gè)目標(biāo)文件的存放目錄;步驟5:根據(jù)安裝文件列表把已經(jīng)安裝好的目標(biāo)文件逐個(gè)拷貝到目標(biāo)文件存放目錄;步驟6:如果是RedHat及其衍生的發(fā)行版,執(zhí)行rpmbuild命令打包;如果是Debian及其衍生的發(fā)行版,執(zhí)行dpkg命令打包;步驟7:在源碼修改需要再次制作軟件包時(shí),編譯修改的部分,然后執(zhí)行步驟6。
      2.根據(jù)權(quán)利要求1所述的Linux軟件包制作方法,其特征在于:所述預(yù)編譯中將安裝目錄定義成一個(gè)獨(dú)立的目錄,預(yù)編譯命令中加入prefix參數(shù);所述目標(biāo)文件的存放目錄中包含目標(biāo)文件、DEBIAN目錄和rpm spec腳本。
      3.根據(jù)權(quán)利要求1所述的Linux軟件包制作方法,其特征在于:所述rpmspec腳本在%install將目標(biāo)代碼拷貝到目標(biāo)文件的存放目錄,°/叩 、°/叩081:、°/叩 1111、°/叩081:1111根據(jù)需要添加操作;在%build部分不執(zhí)行任何操作。
      4.根據(jù)權(quán)利要求2所述的Linux軟件包制作方法,其特征在于:所述rpmspec腳本在%install將目標(biāo)代碼拷貝到目標(biāo)文件的存放目錄,°/叩 、°/叩081:、°/叩 1111、°/叩081:1111根據(jù)需要添加操作;在%build部分不執(zhí)行任何操作。
      5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的Linux軟件包制作方法,其特征在于:所述的 DEBIAN目錄中按照deb包的規(guī)范添加所需要的腳本或?yàn)榭?添加的腳本包括conffiles、 postinst、postrm、preinst、prerm。
      6.根據(jù)權(quán)利要求3或4所述的Linux軟件包制作方法,其特征在于:所述的rpm軟件包不包含spec文件和DEBIAN目錄。
      7.根據(jù)權(quán)利要求3或4所述的Linux軟件包制作方法,其特征在于:所述的spec腳本中包含的%files內(nèi)容為文件列表,可通過安裝文件列表獲取。
      【文檔編號(hào)】G06F17/30GK103440156SQ201310357253
      【公開日】2013年12月11日 申請(qǐng)日期:2013年8月15日 優(yōu)先權(quán)日:2013年8月15日
      【發(fā)明者】莫展鵬, 楊松, 季統(tǒng)凱 申請(qǐng)人:國云科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1