關于源碼RPM包的安裝于制作
3.修改主配置文件部分內容后,我們就需要把文件重新打包成rpm包了。 7
4 執行 rpmbuild -ba或 rpmbuild -bb命令后,系統會做一下的事情: 7
準備兩個小程序和makefile文件,簡單的C語言寫的,內容如下: 8
準備了源代碼 與 makefile文件后,我們制作屬于自己的RPM程序包。 8
以上文件都準備好了以后,我們就使用rpmbuild軟件可以生成我們自己的軟件了。 10
安裝制作好的RPM軟件,我們在沒有安裝之前可以查看下我們的自己RPM包的信息。 11
什么是RPM與SRPM?
RPM:
RPM是以一種數據庫記錄的方式將你所需要的軟件安裝到你的Linux系統的一套管理機制。
Rpm包的最大特點就是將你要安裝的軟件先編譯過,并且打包成為rpm機制的文件包,透過打包好的軟件里面默認的數據記錄,記錄這個軟件要安裝的時候必須具備的相依賴的軟件,當安裝在Linux主機上時,RPM會先依照軟件里頭的數據查詢Linux主機的相依賴軟件是否滿足,滿足則安裝,不滿足則不安裝。
安裝的時候就將該軟件的信息整個的寫入RPM的數據庫中,以便未來的查詢,驗證和反安裝,RPM包就有以下優點:
1.由于已經編譯完成并且打包好,所以軟件在傳輸與安裝上就很方便(不需要重新編譯);
2.由于軟件的信息都記錄在Linux主機的RPM數據庫中,方便查詢,升級,卸載等。
由于RPM已經打包好,并且只能在固定主機環境中才能安裝,所以有就有以下的缺點:
1.軟件程序安裝的環境必須與打包時的環境需求一致或相當;
2.需要滿足軟件的依賴性需求;
3.反安裝時要特別注意,底層軟件不可移除,否則可能造成整個系統的崩潰。(比如移除 bash)
SRPM:
我們想要安裝其他發布版提供好用的RPM軟件怎么辦,就有一個叫SRPM的軟件包,它就是 source RPM的意思,這個RPM中含有源代碼,并且沒有編譯過。
通常情況下 srpm的擴展名為: ****.src.rpm 的格式命令,它還提供了參數配置文件(configure與makefile),所以我們下載的是SRPM,我們就需要安裝該軟件時,必須要經過一下的步驟:
1.先將該軟件以RPM管理的方式編譯,此時SRPM會被編譯為RPM文件包;
2.然后將編譯完成的RPM文件包安裝到linux系統當中即可。
SRPM的安裝
我們在網上下載了一個包含soure code的SRPM的軟件包,我們如何安裝呢?
一 .利用rpmbuild默認安裝SRPM檔案
選項主要有兩個:
–rebuild : 這個選項會將后面的SRPM進行 編譯 與 打包 ,最后生成RPM程序包,這個就是編譯完成的RPM文件,我們使用RPM正常安裝即可。
–recompile :這個選項有前面 –rebuild的全部操作,并且會安裝編譯打包好的 RPM包。
舉例:
[root@centos68 srpm_dir]# rpmbuild --rebuild bzip2-1.0.5-6.1.el6.src.rpm Installing bzip2-1.0.5-6.1.el6.src.rpm warning: InstallSourcePackage at: psm.c:244: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY warning: user mockbuild does not exist - using root warning: group mockbuild does not exist - using root warning: user mockbuild does not exist - using root warning: group mockbuild does not exist - using root warning: user mockbuild does not exist - using root warning: group mockbuild does not exist - using root warning: user mockbuild does not exist - using root warning: group mockbuild does not exist - using root warning: user mockbuild does not exist - using root warning: group mockbuild does not exist - using root Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.tFvvbs + umask 022 + cd /root/rpmbuild/BUILD ............................................................ Wrote: /root/rpmbuild/RPMS/x86_64/bzip2-debuginfo-1.0.5-6.1.el6.x86_64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.k79SmE + umask 022 + cd /root/rpmbuild/BUILD + cd bzip2-1.0.5 + rm -rf /root/rpmbuild/BUILDROOT/bzip2-1.0.5-6.1.el6.x86_64 + exit 0 Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.yeIhO9 + umask 022 + cd /root/rpmbuild/BUILD + rm -rf bzip2-1.0.5 + exit 0 [root@centos68 srpm_dir]# [root@centos68 x86_64]# ls bzip2-1.0.5-6.1.el6.x86_64.rpm bzip2-devel-1.0.5-6.1.el6.x86_64.rpm bzip2-debuginfo-1.0.5-6.1.el6.x86_64.rpm bzip2-libs-1.0.5-6.1.el6.x86_64.rpm [root@centos68 x86_64]# pwd /root/rpmbuild/RPMS/x86_64 #系統編譯自動生成的目錄 [root@centos68 x86_64]#
二.配置路徑與需要的軟件功能模塊
SRPM使用的路徑與需要的軟件,SRPM在進行編譯的時候會使用到哪些目錄,我們就知道如何修改的,無論是哪系統版本通常情況下:在 /usr/src/redhat/為工作目錄,或者其他的工作目錄,一般都在/usr/src/下面的目錄,我們看看有哪些需要使用到的目錄吧!
在6.8上生成的地方為: /root/rpmbuild 可能是與其他的版本的不同吧,我的是 centos6.8的系統使用root賬號登錄的。
1.安裝RPM源碼包
[root@centos68 srpm_dir]# rpm -i bzip2-1.0.5-6.1.el6.src.rpm --nosignature #安裝源碼RPM包 [root@centos68 rpmbuild]# ls SOURCES SPECS [root@centos68 rpmbuild]# tree . ├── SOURCES │ ├── bzip2-1.0.4-bzip2recover.patch #補丁文件 │ ├── bzip2-1.0.4-cflags.patch #補丁文件 │ ├── bzip2-1.0.4-saneso.patch #補丁文件 │ └── bzip2-1.0.5.tar.gz #源代碼 └── SPECS └── bzip2.spec #主配置文件 2 directories, 5 files [root@centos68 rpmbuild]#
2.查看主配置文件:
[root@centos68 SPECS]# cat bzip2.spec %define library_version 1.0.4 Summary: A file compression utility #軟件基本信息 Name: bzip2 Version: 1.0.5 Release: 6.1%{?dist} License: BSD Group: Applications/File URL: http://www.bzip.org/ Source: http://www.bzip.org/%{version}/bzip2-%{version}.tar.gz Patch0: bzip2-1.0.4-saneso.patch Patch5: bzip2-1.0.4-cflags.patch Patch6: bzip2-1.0.4-bzip2recover.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %description #軟件的描述信息 Bzip2 is a freely available, patent-free, high quality data compressor. Bzip2 compresses files to within 10 to 15 percent of the capabilities of the best techniques available. However, bzip2 has the added benefit of being approximately two times faster at compression and six times faster at decompression than those techniques. Bzip2 is not the fastest compression utility, but it does strike a balance between speed and compression capability. Install bzip2 if you need a compression utility. %package devel Summary: Header files developing apps which will use bzip2 Group: Development/Libraries Requires: bzip2-libs = %{version}-%{release} %description devel Header files and a library of bzip2 functions, for developing apps which will use the library. %package libs Summary: Libraries for applications using bzip2 Group: System Environment/Libraries %description libs Libraries for applications using the bzip2 compression format. #編譯前的預處理,以及編譯過程中需要用到的指令。 #尤其%build底下的數據,幾乎就是makefile里面的信息 %prep %setup -q %patch0 -p1 -b .saneso %patch5 -p1 -b .cflags %patch6 -p1 -b .bz2recover %build #編譯開始 make -f Makefile-libbz2_so CC="%{__cc}" AR="%{__ar}" RANLIB="%{__ranlib}" \ CFLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64 -fpic -fPIC" \ %{?_smp_mflags} all rm -f *.o make CC="%{__cc}" AR="%{__ar}" RANLIB="%{__ranlib}" \ CFLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64" \ %{?_smp_mflags} all %install #安裝的過程 rm -rf ${RPM_BUILD_ROOT} chmod 644 bzlib.h mkdir -p $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1,/%{_lib},%{_libdir},%{_includedir}} cp -p bzlib.h $RPM_BUILD_ROOT%{_includedir} install -m 755 libbz2.so.%{library_version} $RPM_BUILD_ROOT/%{_lib} install -m 755 bzip2-shared $RPM_BUILD_ROOT%{_bindir}/bzip2 install -m 755 bzip2recover bzgrep bzdiff bzmore $RPM_BUILD_ROOT%{_bindir}/ cp -p bzip2.1 bzdiff.1 bzgrep.1 bzmore.1 $RPM_BUILD_ROOT%{_mandir}/man1/ ln -s bzip2 $RPM_BUILD_ROOT%{_bindir}/bunzip2 ln -s bzip2 $RPM_BUILD_ROOT%{_bindir}/bzcat ln -s bzdiff $RPM_BUILD_ROOT%{_bindir}/bzcmp ln -s bzmore $RPM_BUILD_ROOT%{_bindir}/bzless ln -s libbz2.so.%{library_version} $RPM_BUILD_ROOT/%{_lib}/libbz2.so.1 ln -s ../../%{_lib}/libbz2.so.1 $RPM_BUILD_ROOT/%{_libdir}/libbz2.so ln -s bzip2.1 $RPM_BUILD_ROOT%{_mandir}/man1/bzip2recover.1 ln -s bzip2.1 $RPM_BUILD_ROOT%{_mandir}/man1/bunzip2.1 ln -s bzip2.1 $RPM_BUILD_ROOT%{_mandir}/man1/bzcat.1 ln -s bzdiff.1 $RPM_BUILD_ROOT%{_mandir}/man1/bzcmp.1 ln -s bzmore.1 $RPM_BUILD_ROOT%{_mandir}/man1/bzless.1 %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig %clean rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,root,-) %doc LICENSE CHANGES README %{_bindir}/* %{_mandir}/*/* %files libs %defattr(-,root,root,-) /%{_lib}/*so.* %files devel %defattr(-,root,root,-) %doc manual.html manual.pdf %{_includedir}/* /%{_libdir}/*so %changelog #chagelog日志 * Mon Nov 30 2009 Dennis Gregorovic <dgregor@redhat.com> - 1.0.5-6.1 - Rebuilt for RHEL 6 * Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.5-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Tue Mar 17 2009 Ivana Varekova <varekova@redhat.com> 1.0.5-5 - remove static library * Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.5-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Mon Sep 1 2008 Ivana Varekova <varekova@redhat.com> 1.0.5-3 - minor spec file changew * Thu Apr 10 2008 Ivana Varekova <varekova@redhat.com> 1.0.5-2 - Resolves: #441775 fix libs link * Tue Mar 25 2008 Ivana Varekova <varekova@redhat.com> 1.0.5-1 - update to 1.0.5 * Wed Feb 20 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.0.4-14 - Autorebuild for GCC 4.3 * Wed Jan 23 2008 Ivana Varekova <varekova@redhat.com> 1.0.4-13 - rebuild * Mon May 21 2007 Ivana Varekova <varekova@redhat.com> 1.0.4-12 - fix *.so,*.a directory * Mon May 21 2007 Ivana Varekova <varekova@redhat.com> 1.0.4-11 - remove libbz2.* from /usr/lib* to /lib* * Wed Apr 4 2007 Ivana Varekova <varekova@redhat.com> 1.0.4-10 - change libz.a permissions * Wed Apr 4 2007 Ivana Varekova <varekova@redhat.com> 1.0.4-9 - remove useless -p * Thu Mar 15 2007 Ivana Varekova <varekova@redhat.com> 1.0.4-8 - remove unnecessary "/" after RPM_BUILD_ROOT macro * Mon Feb 19 2007 Jesse Keating <jkeating@redhat.com> 1.0.4-7 - Temporarily add static lib back in for rpm
通過以上的配置文件的了解主要有一下的這些東西:
Summary : 軟件的基本介紹和說明!
Name :軟件的名稱
Version :軟件的版本
Release :軟件打包的次數
License :授權機構
Group :軟件團體的名稱
Url :原始代碼的官方鏈接
Source :軟件來源
BuildRoot :編譯過程中,設定那個目錄為臨時編譯目錄。
Requires : 相關依賴的問題
Packager :這個軟件是經由誰來打包的
3.修改主配置文件部分內容后,我們就需要把文件重新打包成rpm包了。
在配置文件的目錄下:
[root@centos68 SPECS]# rpmbuild -ba bzip2.spec #編譯并同時產生RPM與SRPM文件 [root@centos68 SPECS]# rpmbuild -bb bzip2.spec #僅編譯成RPM文件 [root@centos68 x86_64]# pwd /root/rpmbuild/RPMS/x86_64 [root@centos68 x86_64]# ls bzip2-1.0.5-6.1.el6.x86_64.rpm bzip2-devel-1.0.5-6.1.el6.x86_64.rpm bzip2-debuginfo-1.0.5-6.1.el6.x86_64.rpm bzip2-libs-1.0.5-6.1.el6.x86_64.rpm
4 執行 rpmbuild -ba或 rpmbuild -bb命令后,系統會做一下的事情:
1. 先進入 BUILD 這個目錄中,也是: /root/rpmbuild/BUILD 這個目錄;
2. 依照 *.spec 文字中的 Name 與 Version 定義出工作的目錄名稱,以我們上面的例子為例,那舉系統就會在 BUILD 目錄中先刪除 bzip2-1.0.5 的目錄,再重新建立一個 bzip2-1.0.5 的目錄,再進入該目錄;
3. 在新建的目錄里面,針對 SOURCES 目錄下的來源檔案,也就是 *.spec 里面的 Source 設定的那個檔案,以 tar 進行解壓縮,以我們這個例子來說,則會在 /root/rpmbuild/BUILD/bzip2-1.0.5 當中,將/root/rpmbuild/SOURCES/bzip2-1.0.5.tar.gz 進行解壓縮
4. 再來開始 %build 及 %install 的設定與編譯!
5. 最后將完成打包的檔案給他放置到該放置的地方去,如果你的規定的硬件是在 i386 的系統,那舉最后編譯成功的 *.i386.rpm檔案就會被放置在 /root/rpmbuildRPMS/i386 里面啰!如果是 i686 那舉自然就是 /root/rpmbuildRPMS/i686 目錄下!
§·打造屬于自己的小的RPM包
準備兩個小程序和makefile文件,簡單的C語言寫的,內容如下:
[root@centos68 bin]# ls 1.c echo_2.c makefile [root@centos68 bin]# cat 1.c #程序1 1.c #include<stdio.h> #簡單的顯示程序,在屏幕上顯示幾行字。 int main(void){ printf("大家好 xxx;\n"); printf("我叫xxx;\n"); printf("很高興認識大家;\n"); printf("今天就搞懂一個問題\n"); printf("關于程序方面的問題\n"); printf("希望大家有所收獲!\n"); echo_2(); #調用子程序 echo_2.c } [root@centos68 bin]# cat echo_2.c #程序2 echo_.c #include<stdio.h> #也是簡單的顯示幾行字 void echo_2(void) { printf("--------------------------\n"); printf("1 make makefile\n"); printf("2 configure\n"); printf("3 簡單的程序基礎知識\n"); printf("4 制作自己的小RPM軟件\n"); printf("--------------------------\n"); } [root@centos68 onesb-0.1]# cat makefile makefile文件 onesb: 1.o echo_2.o gcc -o onesb 1.o echo_2.o install: Install -m 755 onesb $(RPM_INSTALL_ROOT) /usr/local/bin/onesb
準備了源代碼 與 makefile文件后,我們制作屬于自己的RPM程序包。
把源代碼 makefile文件打包成一個文件夾
[root@centos68 SOURCES]# tar -ztvf onesb-0.1.tar.gz drwxr-xr-x root/root 0 2016-08-23 18:37 onesb-0.1/ -rw-r--r-- root/root 303 2016-08-23 17:30 onesb-0.1/1.c -rw-r--r-- root/root 266 2016-08-23 17:32 onesb-0.1/echo_2.c -rw-r--r-- root/root 120 2016-08-23 18:10 onesb-0.1/makefile [root@centos68 SOURCES]# 注意:需要建立一個軟件名稱+版本號同名的文件夾,把所有的文件放在文件夾里面再打成一個軟件名+版本號+tar.gz的文件
1.建立編譯工作目錄;把相應的文件放在相應的目錄下
在centos 6.8上 管理員登陸系統,在自己家目錄下建立以下幾個文件:
[root@centos68 rpmbuild]# pwd /root/rpmbuild [root@centos68 rpmbuild]# [root@centos68 rpmbuild]# tree . ├── SOURCES │ └── onesb-0.1.tar.gz └── SPECS └── onesb.spec 2 directories, 2 files
注意:建立目錄為: /root/rpmbuild , /root/rpmbuild/SOURCES , /root/rpmbuild/SPECS
將打包好的文件 onesb-0.1.tar.gz 放在 /root/rpmbuild/SOURCES 下,在/root/rpmbuild/SPECS 新建一個文件onesb.spec, onesb.spec的內容如下
[root@centos68 SPECS]# cat onesb.spec Summary: onesb-317005239@qq.com #軟件的說明信息 Name: onesb #軟件名稱與tar.gz文件要相同 Version: 0.1 #軟件版本與tar.gz文件要相同 Release: 1 #編譯的次數 License: megeedu #可以隨意填寫 Group: ChenHome #隨意填寫 URL: http://www.megeedu.org/ #隨意填寫 Source: onesb-0.1.tar.gz #一定要與自己tar.gz文件一樣 Packager:Chen BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root #只知道大概,不知道具體的含義 %description #描述信息 317005239@qq.com %prep #軟件預處理階段 %setup -q %build #開始編譯階段 make %install #生成RPM階段 rm -rf %{buildroot} mkdir -p %{buildroot}/usr/local/bin make install RPM_INSTALL_ROOT=%{buildroot} %files /usr/local/bin/onesb %changelog #軟件更新日志 *Wed Jul 08 2016 <317005239@qq.com> -0.1 -mageedu.com [root@centos68 SPECS]#
以上文件都準備好了以后,我們就使用rpmbuild軟件可以生成我們自己的軟件了。
[root@centos68 SPECS]# rpmbuild --ba onesb.spec Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.yaBjpy + umask 022 + cd /root/rpmbuild/BUILD #進入到目錄 + + export LANG + unset DISPLAY #準備一些環境 + cd /root/rpmbuild/BUILD + rm -rf onesb-0.1 + /bin/tar -xf - + /usr/bin/gzip -dc /root/rpmbuild/SOURCES/onesb-0.1.tar.gz #貌似是解壓文件 + STATUS=0 + '[' 0 -ne 0 ']' + cd onesb-0.1 #進入到解壓文件目錄 + /bin/chmod -Rf a+rX,u+w,g-w,o-w . + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.CMQQNb + umask 022 + cd /root/rpmbuild/BUILD + cd onesb-0.1 + + export LANG + unset DISPLAY + make #安裝makefile文件進行編譯的操作 cc -c -o 1.o 1.c cc -c -o echo_2.o echo_2.c gcc -o onesb 1.o echo_2.o + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.g8IxpP + umask 022 + cd /root/rpmbuild/BUILD + '[' /root/rpmbuild/BUILDROOT/onesb-0.1-1.x86_64 '!=' / ']' + rm -rf /root/rpmbuild/BUILDROOT/onesb-0.1-1.x86_64 ++ dirname /root/rpmbuild/BUILDROOT/onesb-0.1-1.x86_64 + mkdir -p /root/rpmbuild/BUILDROOT + mkdir /root/rpmbuild/BUILDROOT/onesb-0.1-1.x86_64 + cd onesb-0.1 + + export LANG + unset DISPLAY + rm -rf /root/rpmbuild/BUILDROOT/onesb-0.1-1.x86_64 + mkdir -p /root/rpmbuild/BUILDROOT/onesb-0.1-1.x86_64/usr/local/bin + make install RPM_INSTALL_ROOT=/root/rpmbuild/BUILDROOT/onesb-0.1-1.x86_64 install -m 755 onesb /root/rpmbuild/BUILDROOT/onesb-0.1-1.x86_64/usr/local/bin/onesb + /usr/lib/rpm/find-debuginfo.sh --strict-build-id /root/rpmbuild/BUILD/onesb-0.1 extracting debug info from /root/rpmbuild/BUILDROOT/onesb-0.1-1.x86_64/usr/local/bin/onesb + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-compress + /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump + /usr/lib/rpm/brp-python-bytecompile /usr/bin/python + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/lib/rpm/redhat/brp-java-repack-jars Processing files: onesb-0.1-1.x86_64 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) rtld(GNU_HASH) Processing files: onesb-debuginfo-0.1-1.x86_64 Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/onesb-0.1-1.x86_64 warning: Could not canonicalize hostname: centos68.qq.com Wrote: /root/rpmbuild/SRPMS/onesb-0.1-1.src.rpm #生成我們需要的rpm源碼文件 Wrote: /root/rpmbuild/RPMS/x86_64/onesb-0.1-1.x86_64.rpm Wrote: /root/rpmbuild/RPMS/x86_64/onesb-debuginfo-0.1-1.x86_64.rpm #生成我們需要的rpm軟件 Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.1unwdr + umask 022 + cd /root/rpmbuild/BUILD + cd onesb-0.1 + /bin/rm -rf /root/rpmbuild/BUILDROOT/onesb-0.1-1.x86_64 + exit 0 [root@centos68 SPECS]#
安裝制作好的RPM軟件,我們在沒有安裝之前可以查看下我們的自己RPM包的信息。
[root@centos68 x86_64]# pwd /root/rpmbuild/RPMS/x86_64 #我們制作好的軟件包生成路徑在 /root/rpmbuild/RPMS/x86_64 [root@centos68 x86_64]# rpm -qpi onesb-0.1-1.x86_64.rpm #查詢我們生成的軟件包的信息 Name : onesb Relocations: (not relocatable) Version : 0.1 Vendor: (none) Release : 1 Build Date: Tue 23 Aug 2016 07:28:11 PM CST Install Date: (not installed) Build Host: centos68.qq.com Group : ChenHome Source RPM: onesb-0.1-1.src.rpm Size : 4656 License: megeedu Signature : (none) Packager : Chen URL : http://www.megeedu.org/ Summary : onesb-317005239@qq.com Description : 317005239@qq.com [root@centos68 x86_64]# rpm -qpl onesb-0.1-1.x86_64.rpm #查詢軟件包安裝會產生的文件 /usr/local/bin/onesb [root@centos68 x86_64]#
測試制作好的軟件包。
[root@centos68 x86_64]# rpm -ivh onesb-0.1-1.x86_64.rpm Preparing... ########################################### [100%] package onesb-0.1-1.x86_64 is already installed [root@centos68 RPMS]# onesb 大家好 xxxxxx; 我叫xxxxx; 很高興認識大家; 今天就搞懂一個問題 關于程序方面的問題 希望大家有所收獲! -------------------------- 1 make makefile 2 configure 3 簡單的程序基礎知識 4 制作自己的小RPM軟件 -------------------------- [root@centos68 RPMS]#
通過制作自己的小的RPM軟件包,大概了解在Centos中關于RPM包,SRPM包的相關管理概念,對于linux中的源代碼編譯有大概的了解。
對于為什么需要使用yum ,為什么需要源碼編譯,關于gcc 編程有簡單的認識,對于make命令的執行過程有部分的認識,為什么需要使用./configure生成makefile文件有簡單的了解,對以后學習還有所幫助。
原創文章,作者:linux_root,如若轉載,請注明出處:http://www.www58058.com/39323