yumコマンド例文集

yumコマンド関係の備忘録。


    ソフトウェアのインストール

    yum install PACKAGENAMES  
    

    インストール済パッケージの一覧

    yum list installed  
    

    レポジトリ管理外も含むインストール済パッケージの一覧

    rpm -qa  
    

    アップデート可能なパッケージの一覧

    yum list updates  
    

    ソフトウェアのアップデート

    引数を指定しなければyum list updatesで示されるパッケージすべてをアップデートしようとする。むしろ引数を指定することのほうが稀だろう。

    yum update [PACKAGENAMES]  
    

    キャッシュ/ワークファイルのクリア

    yum clean all  
    

    ソフトウェア削除

    そのパッケージに依存している他のパッケージがある場合それも共に列挙される。1

    yum remove PACKAGENAMES  
    

    RPMファイルのインストール

    リポジトリを検索せずローカルダウンロード済のパッケージをインストールする場合に使用する。直接URLを指定してもよい。必要ならリポジトリから依存関係解決に必要なパッケージの追加導入やGPGKEYのインポートまでも面倒を見てくれる。かたや依存関係が解決できず、システムに適合しないRPMファイルについては何もしない。

    yum localinstall PACKAGE.RPM  
    

    yumリポジトリ管理外のRPMファイルのインストール

    yum localinstallと異なり依存関係の解決は行われないし、GPGKEYが必要な場合でも別にインポートしなければならない。依存性の欠如はどんなファイルが不足しているかだけを示し、リポジトリを参照する訳ではないのでパッケージ名までは列挙しない。

    rpm --import GPGKEY-FILE_OR_URL  
    rpm -ivh PACKAGE.RPM-FILE_OR_URL  
    

    ある特定ファイルを含むパッケージ名の検索

    FILENAMEはグロブで指定することができる。既にインストール済の場合はinstalled、そうでなければ見つかったリポジトリ名も示す。

    yum provides FILENAME  
    yum provides */httpd --disablerepo=base  
    

    パッケージに含まれるファイルとディレクトリの一覧

    yum-utilsパッケージに含まれるrepoqueryコマンドはパッケージに含まれるファイルやディレクトリの一覧を、パッケージをダウンロードせずに取得できる。

    repoquery --list PACKAGENAME  
    

    クリーンなchroot環境を作る

    最初のyum実行ではrpm環境がまだchroot内にないため--releaseverを明示することでエラーを避ける。Coreグループインストール完了後以降ではその必要はない。最後にclean allでyumのワークファイルを消して容量を節約する。

    rm -fr /tmp/chroot  
    yum --installroot=/tmp/chroot --releasever=6.6 groupinstall Core -y  
    yum --installroot=/tmp/chroot update -y  
    :
    yum --installroot=/tmp/chroot clean all
    
    chroot /tmp/chroot  
    

    古いカーネルを削除する(CentOS6)

    CentOS5まではバージョン番号も省略せずに指定しないと現在実行中のカーネルまでもが削除できてしまった2が、CentOS6では正しくプロテクトされるようになったので、逆にkernelとだけ指定することで現在実行中のカーネル以外を一括削除3できるようになった。

    yum remove kernel  
    

    カーネルを複数世代保持しておきたい場合はyumではなくpackage-cleanupコマンドを使用するとよい。

    package-cleanup --oldkernels --count=2  
    

    1. 例えばpostfixをインストールする前にsendmailを、rsyslogをインストールする前にsyslogを削除しようとするとシステム崩壊するほど数のパッケージが同時に削除されようとする。そんなこともあり誤操作を避けるためremove時は-yオプションを付けるべきではない。

    2. もちろん気付かずにそのまま再起動してしまうと素晴らしい顛末が待っている。

    3. このためupdate直後にremoveするとupdate前にロールバックする動作になる。ゆえに意図通りにremoveするには再起動&正常起動確認の後で行わなければならない。

    RECENT LINKS