Memo/Linux/yum

http://dexlab.net/pukiwiki/index.php?Memo%2FLinux%2Fyum
 

yum


needs-restarting: 再起動が必要なプロセスを表示

  • CentOS 7
    1. sudo yum install yum-utils
    2. sudo needs-restarting | sort -g

swap: 依存関係のあるパッケージを入れ替える

  • fooパッケージを消すと、fooと依存関係のパッケージが一度に消えて面倒。そのような場合にswapが使える。複数パッケージも同様に指定可能
    1. sudo yum swap \
    2. -- remove foo \
    3. -- install bar

古いバージョンも含めて検索/表示

  • yum infoやsearch時に「--showduplicates」を追加する
    1. sudo yum search ansible --enablerepo=epel --showduplicates
    2. ...
    3. ansible-1.1-2.el6.rf.noarch : Minimal SSH command and control
    4. ansible-2.3.0.0-3.el6.noarch : SSH-based configuration management, deployment, and task execution system
    5.  
    6. sudo yum info ansible --enablerepo=epel --showduplicates

yum.conf内の変数

  • $basearch: i386, x86_64
  • $releasever: CentOS6の場合
    1. # yum.conf内で指定してあるパッケージのVersionが使われる
    2. grep distroverpkg /etc/yum.conf
    3. distroverpkg=centos-release
    4.  
    5. # centos-releaseパッケージの情報
    6. rpm -qi centos-release
    7. Name        : centos-release               Relocations: (not relocatable)
    8. Version     : 6                                 Vendor: CentOS
    9.  
    10. # つまり $releasever = 6 になる
    11.  
    12. # 以下でも取得できる
    13. rpm -q --whatprovides /etc/redhat-release --qf '%{version}\n'
    14. 6

データベース再構築

yumをCTRL+Cで止めたら、動作しなくなった時など

  1. sudo rm /var/lib/rpm/__db.00?
  2. sudo rpm --rebuilddb
  3. sudo yum clean metadata
  4. sudo yum clean dbcache
  5. sudo yum clean all

履歴を表示

  • 作業履歴
    1. sudo yum history list
    2.  
    3. 読み込んだプラグイン:fastestmirror
    4. ID     | ログイン ユーザー        | 日時             | 操作           | 変更
    5. -------------------------------------------------------------------------------
    6.    150 |  <USERNAME>              | 2016-04-04 12:51 | Update         |   12
    7.    149 |  <USERNAME>              | 2016-04-04 12:49 | Install        |    1
    8. ...
  • 履歴の詳細。IDを付けると指定できる。
    1. sudo yum history info
    2. 読み込んだプラグイン:fastestmirror
    3. トランザクション ID : 150
    4. 開始時間            : Mon Apr  4 12:51:31 2016
    5. 開始 rpmdb          : 498:495fd114604be3eb3067678881488d622d9c1d19
    6. 終了時間            :            12:51:38 2016 (7 seconds)
    7. 終了 rpmdb          : 498:dcd4b264f4adfb933f594eee370b0c5ecdaa0d03
    8. ユーザー            :  <USERNAME>
    9. 終了コード          : 成功
    10. コマンドライン      : update curl nss
    11. トランザクションの実行:
    12.     インストール rpm-4.8.0-47.el6.x86_64                       @base
    13.     インストール yum-3.2.29-60.el6.centos.noarch               @base
    14.     インストール yum-plugin-fastestmirror-1.1.30-14.el6.noarch @anaconda-CentOS-201207061011.x86_64/6.3
    15. 切り替えたパッケージ:
    16.     更新 curl-7.19.7-26.el6_2.4.x86_64             @anaconda-CentOS-201207061011.x86_64/6.3
    17.     更新      7.19.7-46.el6.x86_64                 @base
    18. ...
  • 指定パッケージの履歴
    1. sudo yum history packages-info openssl*
    2.  
    3. トランザクション ID : 1
    4. 開始時間            : Tue Jul 31 15:00:28 2012
    5. Package        : openssl-1.0.0-20.el6_2.5.x86_64
    6. State          : 依存インストール
    7. ...

Error performing checksum

  • CentOS5 64bit環境で発生
    1. yum install <package>
    2. [Errno -3] Error performing checksum
  • 解決
    1. sudo yum install python-hashlib --enablerepo=epel
    2. sudo yum clean all

リポジトリを指定/除外してupdateする

  • 例:CentOS6.x標準リポジトリだけ更新する
    1. sudo yum --disablerepo="*" --enablerepo="base,updates,extras" update

Cannot retrieve metalink for repository: epel.

  • 解決方法
    1. yum erase epel-release
    2. yum update ca-certificates
    3. rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL
    4. rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

Found 1 pre-existing rpmdb problem(s)/Error: database disk image is malformed

  1. yum clean all
  2.  
  3. # それでもダメな時
  4. rpm --rebuilddb

ローカルパッケージ情報を高速に表示

リポジトリから検索するのが遅いので、「--disablerepo」で無効にする

  1. yum info yum --disablerepo "*"

yum-cronのメール通知の停止

  1. vim /etc/sysconfig/yum-cron
  2. ----
  3. MAILTO=
  4. ----

yumの実行履歴

  • CentOS6.x
    • /var/log/yum.log

yumでプログレスバーを非表示

スクリプトからyum update する時などプログレスバーは出したくない。"-q"だと何も表示されなくて困る。"-d 1"だとちょうどいい。default:2

  1. sudo yum -d 1 update

yum updateで依存関係が問題ないパッケージだけを更新

yum updateでは一つでも依存関係に問題があると全てキャンセルされる。
"--skip-broken" オプションで、問題あるパッケージだけスキップして更新できる。

  1. yum update --skip-broken

yumでローカル/リモートrpmをインストール

ローカルやリモートにrpmだけある場合でもyumを使う事で、依存関係のあるパッケージを自動でインストールしてくれる

  1. yum localinstall example.rpm
  2.  
  3. yum localinstall http://www.example.com/example.rpm

yum の "Downloading Packages:" から進まない時

  • yum の "Downloading Packages:" から進まない時。以下が増えていればパッケージのダウンロード中。
    1. du -sh /var/cache/yum/
    2.  
    3. # 詳細
    4. ls -lh /var/cache/yum/x86_64/6/<repository>/packages/
  • 高速なミラーを選択してくれるパッケージをインストール
    1. yum -y install yum-fastestmirror

yumでダウングレード

  1. yum downgrade パッケージ名

yum group

  • 指定可能なグループ一覧。「-v」でgroup-idも表示される。グループ名にはスペースが含まれているが、group-idでも指定可能。
    1. sudo LANG=C yum grouplist -v
    2. Installed Language Groups:
    3.    Japanese Support (japanese-support) [ja]
    4. Available Groups:
    5.    Backup Client (backup-client)
    6.    Backup Server (backup-server)
    7.    Base (base)
    8. ...
  • パッケージ内容を調べる
    1. sudo yum groupinfo "base"
  • インストール
    1. sudo yum groupinstall "パッケージ名"
  • 削除
    1. sudo yum groupremove "Office/Productivity"

他のyumリポジトリを使用する


epel

  • Fedora Extra Package for Enterprise Linux (epel)
    • RHEL/CentOS用の長期管理されたパッケージがある。品質は高いのでこれはデフォルトでインストールしておいても良いと思う。
  1. # CentOS7.x
  2. sudo yum install -y epel-release
  3.  
  4. # CentOS6.x
  5. rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL
  6. rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
  7.  
  8. # CentOS5.x
  9. rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL
  10. rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-5.noarch.rpm
  11.  
  12. # デフォルトで無効にしたい場合
  13. perl -p -i -e 's#enabled\s*=\s*1#enabled = 0#' "/etc/yum.repos.d/epel.repo"

SCL

  1. sudo yum install centos-release-SCL

remi

  • php-5.4.31, mysql-5.5.38の最新版があるので便利
    1. wget -q http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
    2. rpm -Uvh remi-release-6.rpm
    3. wget -q http://rpms.famillecollet.com/RPM-GPG-KEY-remi
    4. rpm --import RPM-GPG-KEY-remi
    5. perl -p -i -e 's#enabled\s*=\s*1#enabled=0#' "/etc/yum.repos.d/remi.repo"

atomic

  • RHEL/CentOS 5用のphp5.3が便利
    1. wget -q http://atomicorp.com/channels/atomic/centos/5/i386/RPMS/atomic-release-1.0-13.el5.art.noarch.rpm
    2. rpm -Uvh atomic-release-1.0-13.el5.art.noarch.rpm
    3. rm -f atomic-release-1.0-13.el5.art.noarch.rpm
    4. wget -q http://www.atomicrocketturtle.com/RPM-GPG-KEY.art.txt
    5. rpm --import RPM-GPG-KEY.art.txt
    6. rm -f RPM-GPG-KEY.art.txt
    7. perl -p -i -e 's#enabled\s*=\s*1#enabled=0#' "/etc/yum.repos.d/atomic.repo"

rpmfusion

  • rpmfusion epelも必要
    1. wget http://download1.rpmfusion.org/free/el/updates/testing/5/i386/rpmfusion-free-release-5-0.1.noarch.rpm
    2. rpm -ivh rpmfusion-free-release-5-0.1.noarch.rpm
    3. perl -p -i -e 's#enabled\s*=\s*1#enabled=0#g' "/etc/yum.repos.d/rpmfusion-free-updates.repo"
    4. perl -p -i -e 's#enabled\s*=\s*1#enabled=0#g' "/etc/yu$2m.repos.d/rpmfusion-free-updates-testing.repo"
    5. rm -f rpmfusion-free-release-5-0.1.noarch.rpm

ATrpms

  • ATrpms
    1. rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms
    2.  
    3. cat > /etc/yum.repos.d/atrpms.repo << 'EOS'
    4. [atrpms]
    5. name=Redhat Enterprise Linux $releasever - $basearch - ATrpms
    6. baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
    7. enabled=0
    8. gpgcheck=1
    9. gpgkey=http://atrpms.net/RPM-GPG-KEY.atrpms
    10. EOS
    11.  
    12. yum --enablerepo=atrpms install libvdpau libvdpau-devel

rpmforge

  • DAG(rpmforge): 2014年終了、2016-07頃アクセスできなくなる。
    • RPMForge (RepoForge) 終了のお知らせ - Qiita
      1. rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
      2.  
      3. # CentOS6.x
      4. rpm -Uvh http://apt.sw.be/redhat/el6/en/$(uname -i)/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.$(uname -i).rpm
      5.  
      6. # CentOS5.x
      7. rpm -Uhv http://apt.sw.be/redhat/el5/en/$(uname -i)/rpmforge/RPMS/rpmforge-release-0.5.3-1.el5.rf.$(uname -i).rpm
      8. perl -p -i -e 's#enabled\s*=\s*1#enabled=0#' "/etc/yum.repos.d/rpmforge.repo"

RHEL4でyumを使う


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-04-11 (水) 08:55:42 (14d)