Linux配置32位運行庫[附:Yum源配置]


  前言:本帖僅適用於RedHat、CentOS系統

  新安裝的Linux系統,執行32位運行程序時報錯:not a dynamic executable file(不是動態可執行文件),ldd命令打印程序或庫文件依賴的共享庫列表也是同樣的提示

  其原因是系統沒有安裝32位兼容庫的緣故,這里常用兩個方法來解決這個問題——外網/局域網(本地)

  注:Redhat系統如果非正式渠道獲取的官方版本,在線(外網)配置方案會要求注冊,這種情況更適合用局域網配置方案

一、可訪問外網的配置

  1) Centos系統:默認配置了yum外網官方源地址,可以直接使用在線安裝方案

sudo yum install xulrunner.i686

  這里的xulrunner.i686是常用的32位兼容運行庫,它能解決大多數的32位程序依賴問題;以下包也可以解決依賴問題

sudo yum install ia32-libs.i686 glibc.i686 vim*

  2) Ubuntu系統:

sudo apt-get install ia32-libs

  3) Redhat系統:與Centos命令一一致;

  但是,RedHat系統默認是需要注冊才能使用yum的在線安裝功能的,如果沒有注冊系統會提示:

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

  不注冊也可以配置網絡yum源,命令符輸入ping www.baidu.com測試能否鏈接;

[root@localhost ~]# ping www.baidu.com       
PING www.a.shifen.com (183.232.231.172) 56(84) bytes of data.
64 bytes from 183.232.231.172: icmp_seq=1 ttl=128 time=60.8 ms
64 bytes from 183.232.231.172: icmp_seq=2 ttl=128 time=71.7 ms
64 bytes from 183.232.231.172: icmp_seq=3 ttl=128 time=59.2 ms
64 bytes from 183.232.231.172: icmp_seq=4 ttl=128 time=38.2 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 4499ms
rtt min/avg/max/mdev = 38.264/57.518/71.743/12.116 ms
[root@localhost ~]#

  如上表示可以鏈接外網,繼續下一章節 

 4) Redhat系統使用Centos yum網絡源

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ll
總用量 4
-rwxr-xr-x. 1 root root  726 3月  28 00:18 rhel-source.repo
[root@localhost yum.repos.d]# mkdir bak_repo         #創建repo備份文件夾#
[root@localhost yum.repos.d]# mv *.repo bak_repo/    #將所有repo文件移動至備份文件夾,有些系統可能會有多個repo文件,所以是mv *#
[root@localhost yum.repos.d]# touch network.repo     #創建新的repo文件#
[root@localhost yum.repos.d]# chmod 755 network.repo #添加權限#

 

  因為舊版repo是使用的redhat源,所以需要驗證是否注冊;對此我們在新的repo文件中需要指向其他yum源,這里附帶一份目前常用的yum網絡源

mirrors.stuhome.net

mirrors.ustc.edu.cn

ftp.jaist.ac.jp

mirror.bjtu.edu.cn

mirrors.163.com

  以上地址均可以通過瀏覽器直接訪問,舉例說明mirros.163.com的yum源配置:

[root@localhost yum.repos.d]# vim network.repo 
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.163.com/centos/6/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.163.com/centos/6/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.163.com/centos/6/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.163.com/centos/6/centosplus/$basearch/
gpgcheck=1
enabled=0

   保存退出,這里如果是Redhat5.x、Redhat7.x系列的版本,對應的"http://mirrors.163.com/centos/"地址后的數字也需要跟隨版本改變

[root@localhost yum.repos.d]# yum clean all
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Cleaning repos: base extras updates
Cleaning up Everything
[root@localhost yum.repos.d]# yum install xulrunner.i686
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
……省略

   如上所示,紅字部分提示系統未注冊;雖然有這些提示,但不會影響yum命令的正常執行,yum install xulrunner.i686后靜待安裝完成即可;

  可能報錯:

http://mirrors.163.com/centos/6/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 7 - "couldn't connect to host"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again

   這表示這個yum網絡源不穩定,或您的虛擬機訪問這個域名受到限制,可以嘗試更換其他yum網絡源(第一章第4節);

   可以使用[curl -o ip地址 文件名稱]測試是否能訪問這個地址;多測試幾個yum 網絡源,找到能用的位置

[root@localhost yum.repos.d]# curl http://mirrors.163.com/centos/6/os/x86_64/repodata/repomd.xml -o test.xml   
curl: (7) couldn't connect to host
[root@localhost yum.repos.d]# 

  最壞的情況,都鏈接不上;那可能是網絡問題了,要么解決下網絡問題,或者可以參考第二大章節

二、局域網(本地)配置方案

  材料: Linux x64位系統原裝光盤,或同內核版本的64位鏡像文件

  1) 上傳鏡像文件

    這一步沒啥解釋的,能傳上去就行,注意不要是rar之類的windows格式,不然在linux系統下不好解壓;

    文章中舉例說明,本人文件上傳至/media目錄下;后續操作與目錄都在此目錄

  2) 掛載鏡像文件

    linux無法識別iso鏡像,需要掛載后才能訪問;由df -h命令查看系統是否已經掛載鏡像

[root@localhost yum.repos.d]# df -h
文件系統              容量  已用  可用 已用%% 掛載點
/dev/sda3              16G  8.6G  6.2G  59% /
tmpfs                 935M   72K  935M   1% /dev/shm
/dev/sda1             291M   37M  240M  14% /boot

     如上表示當前系統還未掛載鏡像,因為文件系列列沒有一項指向iso文件,可以使用mount命令掛載鏡像文件

[root@localhost yum.repos.d]# cd /media
[root@localhost media]# ls -hl
總用量 3.5G
-rwxr-xr-x. 1 root root 3.5G 12月 16 2015 rhel-server-6.4-x86_64-dvd.iso
[root@localhost media]# 
[root@localhost media]# mount -o loop rhel-server-6.4-x86_64-dvd.iso /media    #只讀方式掛載鏡像,直接mount可能報錯鏡像是只讀文件#
[root@localhost media]# df -h
文件系統              容量  已用  可用 已用%% 掛載點
/dev/sda3              16G  8.6G  6.2G  59% /
tmpfs                 935M   72K  935M   1% /dev/shm
/dev/sda1             291M   37M  240M  14% /boot
/media/rhel-server-6.4-x86_64-dvd.iso
                      3.5G  3.5G     0 100% /media

    以上最后的df -h命令顯示則表示當前系統已經掛載/media/rhel-server-6.4-x86_64-dvd.iso鏡像文件到/media目錄下;

    刷新當前目錄(重新cd到當前目錄),此時可以看到/media目錄即為掛載的鏡像文件目錄

[root@localhost media]# cd /media    #重新進入掛載的目錄才能看到掛載的文件#
[root@localhost media]# ls EFI  EULA_pt           README                    RELEASE-NOTES-it-IT.html  RELEASE-NOTES-ru-RU.html  RPM-GPG-KEY-redhat-release
EULA  EULA_zh           RELEASE-NOTES-as-IN.html  RELEASE-NOTES-ja-JP.html  RELEASE-NOTES-si-LK.html  ScalableFileSystem
EULA_de  GPL               RELEASE-NOTES-bn-IN.html  RELEASE-NOTES-kn-IN.html  RELEASE-NOTES-ta-IN.html  Server
EULA_en  HighAvailability  RELEASE-NOTES-de-DE.html  RELEASE-NOTES-ko-KR.html  RELEASE-NOTES-te-IN.html  TRANS.TBL
EULA_es  images  RELEASE-NOTES-en-US.html  RELEASE-NOTES-ml-IN.html  RELEASE-NOTES-zh-CN.html
EULA_fr  isolinux  RELEASE-NOTES-es-ES.html  RELEASE-NOTES-mr-IN.html  RELEASE-NOTES-zh-TW.html
EULA_it  LoadBalancer  RELEASE-NOTES-fr-FR.html  RELEASE-NOTES-or-IN.html  repodata
EULA_ja  media.repo        RELEASE-NOTES-gu-IN.html  RELEASE-NOTES-pa-IN.html  ResilientStorage
EULA_ko  Packages  RELEASE-NOTES-hi-IN.html  RELEASE-NOTES-pt-BR.html  RPM-GPG-KEY-redhat-beta
[root@localhost media]# 

  3) 配置本地yum repo文件

  創建repo備份目錄,將原repo文件移動至備份文件夾

[root@localhost media]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ll
總用量 4-rwxr-xr-x. 1 root root  726 3月  28 00:18 rhel-source.repo
[root@localhost yum.repos.d]# mkdir bak_repo
[root@localhost yum.repos.d]# mv * bak_repo/

  創建指向本地的repo文件,baseurl、gpgkey中指向的目錄如果有空格,需要"\"轉譯

[root@localhost yum.repos.d]# touch basic.repo 
[root@localhost yum.repos.d]# chmod 755 basic.repo 
[root@localhost yum.repos.d]# vim basic.repo 
[base]
name=RedHatEnterpriseLinu  #自定義名稱,隨便寫#
baseurl=file:///media/    #baseurl指向掛載的目錄   
enabled=1
gpgcheck=0
gpgkey=file:///media/RPM-GPG-KEY-redhat-release

  保存退出,接下來測試本地yum源有效性

  4) 測試本地yum源

[root@localhost yum.repos.d]# yum clean all
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Cleaning repos: base
Cleaning up Everything
[root@localhost yum.repos.d]# yum install vim*
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
base                                                                                                                        | 3.9 kB     00:00 ... 
base/primary_db                                                                                                             | 3.1 MB     00:00 ... 
Setting up Install Process
Package 2:vim-minimal-7.2.411-1.8.el6.x86_64 already installed and latest version
Package 2:vim-common-7.2.411-1.8.el6.x86_64 already installed and latest version
Package 2:vim-enhanced-7.2.411-1.8.el6.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package vim-X11.x86_64 2:7.2.411-1.8.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================================================
 Package                          Arch                            Version                                      Repository                     Size
===================================================================================================================================================
Installing:
 vim-X11                          x86_64                          2:7.2.411-1.8.el6                            base                          1.0 M

Transaction Summary
===================================================================================================================================================
Install       1 Package(s)

Total download size: 1.0 M
Installed size: 2.2 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : 2:vim-X11-7.2.411-1.8.el6.x86_64                                                                                                1/1 
  Verifying  : 2:vim-X11-7.2.411-1.8.el6.x86_64                                                                                                1/1 

Installed:
  vim-X11.x86_64 2:7.2.411-1.8.el6                                                                                                                 

Complete!
[root@localhost yum.repos.d]#
View Code

  OK,本地yum配置成功;

  以上測試過程常見目標源碼包與本地不匹配等問題,通常是由於安裝的系統與鏡像文件不是同內核版本導致;建議更換與鏡像文件一致的系統版本或更換鏡像文件

三、yum解析,常用命令說明

  Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關系,並且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。

  Yum為了解決軟件包的依賴關系存在。yum源就相當於一個文件位置(或者稱為目錄項),當我們使用yum安裝軟件,系統會自動遍歷搜索/etc/yum.repos.d/目錄下的所有repo文件,遍歷讀取repo文件中指向的文件位置或網絡位置,直到搜索到可用的包。當安裝的包需要安裝依賴軟件才能進行時,yum會根據repo源中定義好的路徑查找依賴軟件,並將依賴軟件安裝好(同樣的rpm命令安裝會報錯未安裝xxxxx)

   常用命令舉例

  以下命令省略yum前綴,更多信息使用yum –help參考官方說明

 install [包名稱]

 安裝軟件

 remove [包名稱]

 移除/刪除 軟件

 info [包名稱]

 查看軟件包詳情

 deplist [包名稱]

 顯示軟件包依賴關系

 list installed

 列出所有已安裝的包
 update [包名稱]   更新包
 search [包名稱]  查找、搜索包
 list    列出所有可安裝和可更新的包
 list extras  列出所有已安裝且不在資源庫的包(外部資源安裝、源碼安裝等)
 provides [關鍵詞]   搜索特定包文件名[特定情形常用,比如已知so文件查找含有這些so的軟件包]
 repolist    顯示資源庫的配置
 reinstall [包名稱]  重新安裝軟件包

  其他可選參數

-e

靜默執行,安裝常用

-t

忽略錯誤

-R

[分鍾] 設置等待時間

-y

自動應答,默認yes

check-update

檢查可更新的包

--nogpgcheck

忽略GPG驗證

--skip-broken

 忽略依賴問題,yum默認是安裝所有依賴項,如果忽略,將只安裝當前包

 

      

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM