1. 程式人生 > >Linux:RPM 打包記錄

Linux:RPM 打包記錄

常見問題:

    Q1、No Such File or Directory.

    A1: 不同版本的Linux上會有不同版本的rpmbuild,它定義的%buildroot 路徑 有可能會不同,而且對於有些版本,在spec檔案中指定的%buildroot 並不會起作用,使得package過程中需要的sources所在目錄定位出錯。一般在低版本的rpmbuild上能成功package的spec檔案在其他較高版本上使用時會出現上述錯誤。

    我們可以在spec檔案的 %install 塊中把打包所需的檔案和目錄 拷貝或移動 到現有版本指定的路徑下。

  例如:

rpm 4.11中:%buildroot = %{_buildrootdir}/XXXX = %{_topdir}/BUILDROOT/%{name}-%{version}

rpm 4.3中 :%buildroot = spec檔案中指定,一般 = %{_topdir}/buildroot/%{name}-%{version}

可以使用如下方式進行區分:(注:本人使用redhat5和7)

  (uname -r | grep -q "el7"   #檢視Linux版本
  if [[ $? -eq 0 ]]           #如果是radhat7,則進行檔案的移動;如果不是,則不進行任何操作
  then
    mv $(dirname $(dirname %buildroot))/buildroot/* %buildroot/
  fi
  )

  A2:指定的中間目錄的路徑和package時要求的不一致,更改儲存檔案的路徑一致即可。

  Q2:file xxx  conflict  with xxx。

  A1:spec檔案中的%files塊中指定檔案或目錄時使用的許可權和其他檔案中指定的不一致,解決方法如下:

    1、使用 ll 命令檢視衝突檔案的許可權,

    2、在spec檔案的%file塊中修改衝突檔案的許可權和上一步檢視到的一致即可:

       %attr(555,root,sys) %dir /opt/hp93000/soc_hvmapi

spec檔案:

    %file  設定應該捆綁到 RPM 中的檔案,並且能夠可選地設定捆綁檔案的許可權和其它資訊

      %attr(755,root,sys)    dir / file     #將會覆蓋檔案或者目錄的所有者和許可權,有時候可以設定括號中的內容和原來的許可權相同來解決安裝rpm包時該目錄/檔案 衝突的問題

檢視RPM包中的內容:

    rpm -qpl  packagename

相關推薦

LinuxRPM 打包記錄

常見問題:     Q1、No Such File or Directory.     A1: 不同版本的Linux上會有不同版本的rpmbuild,它定義的%buildroot 路徑 有可能會不同,

Moblinkernel編譯和rpm打包(二)RPM打包

  RPM打包對於應用程式是十分有用的,可以下載,可以解除安裝,可以升級,可打補丁,可用於軟體的釋出和管理,以及以後可能的軟體store。如果我們使用MIC2,更換kenrel,如果需要製作的usbim

Linux學習筆記rpm程序包管理

源代碼 rpm 程序包 以CentOS為例,rpm程序包管理器的相關內容如下:CentOS的程序包管理器: 程序包的命名規則: 源代碼包: software_name-VERSION.tar.gz VERSION:major.mino

Linux基礎管理——軟件包管理rpm,yum高級使用方法(史上最全,沒有之一)

rpm yum 軟件包管理 yum倉庫 yum源地址配置 前言: GRU Linux操作系統中,實現軟件包管理的常見工具有RPM和yum;本專題將就Centos系統中安裝包的命名、校驗、密鑰導入導出、包安裝、卸載、升級、查詢等眾多rpm包管理相關的操作實現進行總結。1、安裝包1.1、

Linux下軟件安裝與卸載rpm和yum工具

.rpm rhel enabled arch 發包 ble 功能 repos 簡潔 一、rpm工具 rpm命令是RPM軟件包的管理工具。rpm原本是Red Hat Linux發行版專門用來管理Linux各項套件的程序,由於它遵循GPL規則且功能強大方便,因而廣受歡迎。逐漸受

Linux Operation學習------SVN/RPM打包

用戶 自動提交 module 協作 -a 1.7 啟動 mat 下載 1、Subversion基本操作是一個自由/開源的版本控制系統(SVN)多人協作文檔並跟蹤所做的修改1.1基本概念:版本庫:是版本控制的核心;任意數量客戶端;客戶端通過寫數據庫分享代碼Subversion

linux文件打包與壓縮

get 註意 RR 常用 bashrc .gz div 處理 文本文 學習內容來源: 實驗樓鏈接: https://www.shiyanlou.com/ 學習內容介紹:Linux 上常用的壓縮/解壓工具,介紹了zip、rar、tar的使用。 文件打包和壓縮Linux 上的壓

linux - mysql - 解除安裝RPM包安裝方式的MySQL解除安裝

(1)檢查是否安裝了MySQL元件 [[email protected] init.d]# rpm -qa | grep -i mysql MySQL-devel-5.6.23-1.linux_glibc2.5 MySQL-client-5.6.23-1.linux_glibc2.5 MyS

Linuxyum(新增/刪除/更新RPM包)的詳細使用方法

yum是什麼 yum = Yellow dog Updater, Modified 主要功能是更方便的新增/刪除/更新RPM包. 它能自動解決包的倚賴性問題. 它能便於管理大量系統的更新問題 yum特點 可以同時配置多個資源庫(Repository) 簡潔的配置檔案(/etc/yum.conf 自動解決增

Linux(CentOS)上打包應用程式RPM

在製作RPM安裝包的時候一般來講有兩種方式 1.使用RPMBUILD 使用RPMBUILD需要自己編寫*.spec檔案 2.使用CMake自帶的CPack工具 由於本人負責的專案都是使用CMake作為構建工具,所以優先考慮使有CPack作為打包工具 在

Linux在64位執行32位程式(安裝32位庫rpm、deb)

記錄: ------------------------------------------------------------------- centos7.x 安裝了glibc:glibc-2.17-157.el7.i686 glibc-2.17 nodeps安裝,即可

linux-rpm 打包之helloworld

關於linux下rpm打包的一個小例子,稱為helloworld吧。 另外,本文會不斷修改。 一、rpm打包準備工作 rpm打包需要一個獨立的打包目錄            目錄結構:             BUILD, BUILDROOT, RPMS, SOURCE

linux 下載rpm包到本地,createrepo建立本地YUM源

如何下載rpm包到本地 設定yum安裝時,保留rpm包。 1.編輯 /etc/yum.conf 將keepcache的值設定為1; 這樣就可以將yum安裝時的rpm包儲存在 /var/cache/yum下面 2.或者使用yum-plugin-downloadonly外掛,  

Linux學習筆記八rpm與yum包管理

iso鏡像 sta check 鏡像 back ever ext tof 校驗 ---rpm包管理--- 什麽是rpm包? RPM Packages Manager 是一種打包格式 使用cpio預覽:rpm2cpio /run/media/root/CentOS\ 7\

Linuxat命令詳解

計時 osi 執行 inux days pan 必須 man 一個 at命令 at命令為單一工作調度命令。at命令非常簡單,但是在指定時間上卻非常強大 語法 at [選項] time at > 執行的命令 ctrl+d 選項 -m :當指定的任務被

Linux安裝git

b- 路徑 kernel tar.gz onf *** msg org 環境變量 1.下載 https://www.kernel.org/pub/software/scm/git/git-2.9.4.tar.gz 2.解壓 tar zxvf git-2.9.4.tar.gz

Linux安裝rpm包時報錯Header V3 DSA/SHA1 Signature, key ID 1d1e034b: NOKEY解決辦法

http pki images 解決辦法 key c-s sha1 nat dsa 這是因為yum安裝了舊版本的GPG key造成的,解決辦法: rpm --import /etc/pki/rpm-gpg/RPM* Header V3 DSA/SHA1 Signatur

Setting up a EDK II build environment on Windows and Linux搭建Windows和Linux開發環境[2.2]

set clu cto 無法安裝 urn ems water 了解 源代碼管理 Setting up a EDK II build environment on Windows and Linux:搭建Windows和Linux開發環境[2.2] 2015-07 北

linuxRPM

-- 代碼包 -h locate 安裝文件 信息 屬於 打了 file 二進制包(Binary)以及源代碼包(Source)兩種。二進制包可以直接安裝在計算機中,而源代碼包將會由RPM自動編譯、安裝。源代碼包經常以src.rpm作為後綴名。 這種軟件包就像windows的

LinuxRPM軟件包的安裝及卸載

hat con 安裝過程 linux下 文件 需要 表示 狀態 conf 在 Linux 操作系統下,幾乎所有的軟件均通過RPM 進行安裝、卸載及管理等操作。RPM 的全稱為Redhat Package Manager ,是由Redhat 公司提出的,用於管理Linux 下