1,583 瀏覽數

Linux command – yum-builddep

yum-builddep 這是做什麼的?

有編譯過 src.rpm (RPM Source) 的人都知道,在編譯前要把所有需要的工具先安裝好,編譯的時候才不會出錯,這時候我們可以透過 yum-builddep 這隻工具幫我們做前置作業.

如果找不到 yum-builddep 這一個工具,請先安裝 yum-utils 套件.

[root@cn171 ~]# yum install yum-utils
Dependencies Resolved

================================================================================
 Package                Arch           Version               Repository    Size
================================================================================
Installing:
 yum-utils              noarch         1.1.31-34.el7         base         113 k
Installing for dependencies:
 python-chardet         noarch         2.2.1-1.el7_1         base         227 k
 python-kitchen         noarch         1.1.1-5.el7           base         267 k

Transaction Summary
================================================================================
Install  1 Package (+2 Dependent packages)

因為我是最小安裝,所以你要編譯 kernel 的 source RPM 需要這麼多的 packages .

[root@cn171 ~]# yum-builddep kernel

Dependencies Resolved

================================================================================
 Package                   Arch     Version                     Repository
                                                                           Size
================================================================================
Installing:
 asciidoc                  noarch   8.6.8-5.el7                 base      251 k
 audit-libs-devel          x86_64   2.4.1-5.el7                 base       68 k
 bc                        x86_64   1.06.95-13.el7              base      115 k
 binutils-devel            x86_64   2.23.52.0.1-55.el7          base      808 k
 bison                     x86_64   2.7-4.el7                   base      578 k
 elfutils                  x86_64   0.163-3.el7                 base      268 k
 elfutils-devel            x86_64   0.163-3.el7                 base       84 k
 gcc                       x86_64   4.8.5-4.el7                 base       16 M
 hmaccalc                  x86_64   0.9.13-4.el7                base       26 k
 m4                        x86_64   1.4.16-10.el7               base      256 k
 net-tools                 x86_64   2.0-0.17.20131004git.el7    base      304 k
 newt-devel                x86_64   0.52.15-4.el7               base       51 k
 numactl-devel             x86_64   2.0.9-6.el7_2               updates    23 k
 patch                     x86_64   2.7.1-8.el7                 base      110 k
 pciutils-devel            x86_64   3.2.1-4.el7                 base       34 k
 perl-ExtUtils-Embed       noarch   1.30-286.el7                base       49 k
 python-devel              x86_64   2.7.5-38.el7_2              updates   391 k
 redhat-rpm-config         noarch   9.1.0-68.el7.centos         base       77 k
 rpm-build                 x86_64   4.11.3-17.el7               base      143 k
 xmlto                     x86_64   0.0.25-7.el7                base       50 k
Installing for dependencies:
 atk                       x86_64   2.14.0-1.el7                base      251 k
 boost-regex               x86_64   1.53.0-25.el7               base      294 k
 bzip2                     x86_64   1.0.6-13.el7                base       52 k
 cairo                     x86_64   1.14.2-1.el7                base      711 k
 centos-indexhtml          noarch   7-9.el7.centos              base       92 k
 cpp                       x86_64   4.8.5-4.el7                 base      5.9 M
 ctags                     x86_64   5.8-13.el7                  base      155 k
 cups-libs                 x86_64   1:1.6.3-22.el7              base      355 k
 docbook-dtds              noarch   1.0-60.el7                  base      226 k
 docbook-style-xsl         noarch   1.78.1-3.el7                base      2.0 M
 dwz                       x86_64   0.11-3.el7                  base       99 k
 elfutils-libelf-devel     x86_64   0.163-3.el7                 base       35 k
 flex                      x86_64   2.5.37-3.el7                base      292 k
 fontconfig                x86_64   2.10.95-7.el7               base      228 k
 fontpackages-filesystem   noarch   1.44-8.el7                  base      9.9 k
 gd                        x86_64   2.0.35-26.el7               base      146 k
 gdb                       x86_64   7.6.1-80.el7                base      2.4 M
 gdbm-devel                x86_64   1.10-8.el7                  base       47 k
 gdk-pixbuf2               x86_64   2.31.6-3.el7                base      559 k
 ghostscript               x86_64   9.07-18.el7                 base      4.3 M
 ghostscript-fonts         noarch   5.50-32.el7                 base      324 k
 glibc-devel               x86_64   2.17-106.el7_2.8            updates   1.0 M
 glibc-headers             x86_64   2.17-106.el7_2.8            updates   663 k
 graphite2                 x86_64   1.3.6-1.el7_2               updates   112 k
 graphviz                  x86_64   2.30.1-19.el7               base      1.3 M
 gtk2                      x86_64   2.24.28-8.el7               base      3.4 M
 harfbuzz                  x86_64   0.9.36-1.el7                base      156 k
 hicolor-icon-theme        noarch   0.12-7.el7                  base       42 k
 jasper-libs               x86_64   1.900.1-29.el7              base      149 k
 jbigkit-libs              x86_64   2.0-11.el7                  base       46 k
 kernel-headers            x86_64   3.10.0-327.28.3.el7         updates   3.2 M
 lcms2                     x86_64   2.6-2.el7                   base      150 k
 libICE                    x86_64   1.0.9-2.el7                 base       65 k
 libSM                     x86_64   1.2.2-2.el7                 base       39 k
 libX11                    x86_64   1.6.3-2.el7                 base      605 k
 libX11-common             noarch   1.6.3-2.el7                 base      162 k
 libXau                    x86_64   1.0.8-2.1.el7               base       29 k
 libXaw                    x86_64   1.0.12-5.el7                base      190 k
 libXcomposite             x86_64   0.4.4-4.1.el7               base       22 k
 libXcursor                x86_64   1.1.14-2.1.el7              base       30 k
 libXdamage                x86_64   1.1.4-4.1.el7               base       20 k
 libXext                   x86_64   1.3.3-3.el7                 base       39 k
 libXfixes                 x86_64   5.0.1-2.1.el7               base       18 k
 libXfont                  x86_64   1.5.1-2.el7                 base      150 k
 libXft                    x86_64   2.3.2-2.el7                 base       58 k
 libXi                     x86_64   1.7.4-2.el7                 base       40 k
 libXinerama               x86_64   1.1.3-2.1.el7               base       14 k
 libXmu                    x86_64   1.1.2-2.el7                 base       71 k
 libXpm                    x86_64   3.5.11-3.el7                base       54 k
 libXrandr                 x86_64   1.4.2-2.el7                 base       26 k
 libXrender                x86_64   0.9.8-2.1.el7               base       25 k
 libXt                     x86_64   1.1.4-6.1.el7               base      173 k
 libXxf86vm                x86_64   1.1.3-2.1.el7               base       17 k
 libdb-devel               x86_64   5.3.21-19.el7               base       38 k
 libfontenc                x86_64   1.1.2-3.el7                 base       30 k
 libicu                    x86_64   50.1.2-15.el7               base      6.9 M
 libjpeg-turbo             x86_64   1.2.90-5.el7                base      134 k
 libmpc                    x86_64   1.0.1-3.el7                 base       51 k
 libpng                    x86_64   2:1.5.13-7.el7_2            updates   213 k
 librsvg2                  x86_64   2.39.0-1.el7                base      123 k
 libthai                   x86_64   0.1.14-9.el7                base      187 k
 libtiff                   x86_64   4.0.3-25.el7_2              updates   169 k
 libtool-ltdl              x86_64   2.4.2-21.el7_2              updates    49 k
 libxcb                    x86_64   1.11-4.el7                  base      189 k
 libxshmfence              x86_64   1.2-1.el7                   base      7.2 k
 libxslt                   x86_64   1.1.28-5.el7                base      242 k
 lynx                      x86_64   2.8.8-0.3.dev15.el7         base      1.4 M
 mesa-libEGL               x86_64   10.6.5-3.20150824.el7       base       74 k
 mesa-libGL                x86_64   10.6.5-3.20150824.el7       base      184 k
 mesa-libgbm               x86_64   10.6.5-3.20150824.el7       base       40 k
 mesa-libglapi             x86_64   10.6.5-3.20150824.el7       base       39 k
 mpfr                      x86_64   3.1.1-4.el7                 base      203 k
 pango                     x86_64   1.36.8-2.el7                base      287 k
 pciutils                  x86_64   3.2.1-4.el7                 base       90 k
 perl-ExtUtils-Install     noarch   1.58-286.el7                base       73 k
 perl-ExtUtils-MakeMaker   noarch   6.68-3.el7                  base      275 k
 perl-ExtUtils-Manifest    noarch   1.61-244.el7                base       31 k
 perl-ExtUtils-ParseXS     noarch   1:3.18-2.el7                base       77 k
 perl-Thread-Queue         noarch   3.02-2.el7                  base       17 k
 perl-devel                x86_64   4:5.16.3-286.el7            base      452 k
 perl-srpm-macros          noarch   1-8.el7                     base      4.6 k
 pixman                    x86_64   0.32.6-3.el7                base      254 k
 poppler-data              noarch   0.4.6-3.el7                 base      2.2 M
 sgml-common               noarch   0.6.3-39.el7                base       55 k
 slang-devel               x86_64   2.2.4-11.el7                base       91 k
 source-highlight          x86_64   3.1.6-6.el7                 base      611 k
 unzip                     x86_64   6.0-15.el7                  base      166 k
 urw-fonts                 noarch   2.4-16.el7                  base      3.0 M
 vim-filesystem            x86_64   2:7.4.160-1.el7             base      9.6 k
 xml-common                noarch   0.6.3-39.el7                base       26 k
 xorg-x11-font-utils       x86_64   1:7.5-20.el7                base       87 k
 zip                       x86_64   3.0-10.el7                  base      260 k
Updating for dependencies:
 glibc                     x86_64   2.17-106.el7_2.8            updates   3.6 M
 glibc-common              x86_64   2.17-106.el7_2.8            updates    11 M
 numactl-libs              x86_64   2.0.9-6.el7_2               updates    29 k
 python                    x86_64   2.7.5-38.el7_2              updates    89 k
 python-libs               x86_64   2.7.5-38.el7_2              updates   5.6 M

Transaction Summary
================================================================================
Install  20 Packages (+92 Dependent packages)
Upgrade              (  5 Dependent packages)

接下來試試編譯 Kernel source RPM .

[root@cn171 ~]# adduser builder
[root@cn171 ~]# rpm -ivh kernel-3.10.0-327.28.3.el7.src.rpm 
Updating / installing...
   1:kernel-3.10.0-327.28.3.el7       ################################# [100%]
[root@cn171 ~]# cd rpmbuild/SPECS/
[root@cn171 SPECS]# rpmbuild -ba kernel.spec 
錯誤:相依性建置失敗:
	pesign >= 0.109-4 被 kernel-3.10.0-327.28.3.el7.x86_64 需要

[root@cn171 SPECS]# yum install pesign
[root@cn171 SPECS]# rpmbuild -ba kernel.spec
......
已寫入:/root/rpmbuild/RPMS/x86_64/kernel-debug-debuginfo-3.10.0-327.28.3.el7.x86_64.rpm
正在執行(%clean):/bin/sh -e /var/tmp/rpm-tmp.N7Uwzk
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd kernel-3.10.0-327.28.3.el7
+ rm -rf /root/rpmbuild/BUILDROOT/kernel-3.10.0-327.28.3.el7.x86_64
+ exit 0

編譯完成可以在 rpmbuild/RPMS/x86_64/ 看到編譯好的 rpm 檔案.

[root@cn171 rpmbuild]# cd SPECS/
[root@cn171 SPECS]# cd ../RPMS/x86_64/
[root@cn171 x86_64]# 
總計 738712
-rw-r--r-- 1 root root  34656732  9月  2 23:59 kernel-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root  36355620  9月  3 00:04 kernel-debug-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root 299264512  9月  3 00:08 kernel-debug-debuginfo-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root  11581324  9月  3 00:04 kernel-debug-devel-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root 290149444  9月  3 00:04 kernel-debuginfo-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root  46285184  9月  2 23:59 kernel-debuginfo-common-x86_64-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root  11516656  9月  3 00:00 kernel-devel-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root   3353264  9月  2 23:59 kernel-headers-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root   2524692  9月  3 00:00 kernel-tools-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root   2513308  9月  3 00:00 kernel-tools-debuginfo-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root   2443588  9月  3 00:00 kernel-tools-libs-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root   2439892  9月  3 00:00 kernel-tools-libs-devel-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root   3491672  9月  2 23:59 perf-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root   4575076  9月  3 00:00 perf-debuginfo-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root   2523112  9月  3 00:00 python-perf-3.10.0-327.28.3.el7.x86_64.rpm
-rw-r--r-- 1 root root   2737116  9月  3 00:00 python-perf-debuginfo-3.10.0-327.28.3.el7.x86_64.rpm

發表迴響