NW機器

dnfの使い方~頻出パターンの紹介~

dnf頻出パターンの紹介
dnfで使いがちなものを紹介します。
※記載しているコマンドや手順については、本番環境での実行時には事前に検証環境で試したうえで、実行をしてください。この記事をベースに操作をして、損害があったとしても保証いたしかねます。

若手エンジニア志望者を募集!支度金あり

便利なdnf関連ツール

パッケージの更新時に、OSの再起動が必要になるものがあります。
基本的には、kernelパッケージが対象になりますが、コマンドからそれを確認する方法があります。
そのコマンドを利用するには、dnf-utilsをインストールしておく必要があります。

```bash
sudo dnf install -y dnf-utils # インストールが必要ない可能性があります
```

新規インストール

```bash
sudo dnf install -y <パッケージ名> # <パッケージ名> <パッケージ名> .. とすると、複数のパッケージをインストールできる。
```

パッケージ管理

セキュリティ含む全ての更新を適用(カジュアル版)

```bash
sudo dnf upgrade -y
sudo needs-restarting -r # 事前にdnf-utilsをインストールしておくと、このコマンドで再起動の要否を判定できます。

## 再起動の必要がなければ、以下のメッセージが出力されます。
## No core libraries or services have been updated since boot-up.
## Reboot should not be necessary.
```

セキュリティ含む全ての更新を適用(フォーマル版)

```bash

# 本番環境で実行するときには、メンテナンスウィンドウは設けたうえで、以下の手順を踏むこと推奨
# 再起動をかけられる状態にしておいたほうが、都合がよいです。
# ```
# sudo dnf check-update <パッケージ名を含めることも可>| tee "$(date +%Y%m%d)_dnf_check.log" # アップデート対象一覧の確認し、結果をログに上書き出力
# sudo dnf upgrade --assumeno <パッケージ名を含めることも可> | tee "$(date +%F)_dnf_dryrun.log" # アップデート実行時に起きることをドライランし、結果をログに上書き出力
# ```
## kernel,glibc,systemdについてはバージョンアップ前後で再起動が必要だったり、アプリケーションの動作に変化がある可能性があるため注意してください。
## その他、環境によってモジュールの更新による影響有無は異なるので、開発環境を作って実行することを推奨します。
## 環境の準備が面倒な人は、せめてOSのスナップショットを取り、上記2つのコマンドの実行結果を残しておきましょう。

sudo dnf upgrade -y <パッケージ名を含めることも可>
sudo needs-restarting -r # 事前にdnf-utilsをインストールしておくと、このコマンドで再起動の要否を判定できます。

## 再起動の必要がなければ、以下のメッセージが出力されます。
## No core libraries or services have been updated since boot-up.
## Reboot should not be necessary.

```

セキュリティアドバイザリ(CVE等)に関するパッケージ更新を適用

セキュリティアドバイザリ(CVE等)に関するパッケージ更新を適用(カジュアル版)

セキュリティ更新をするときには、既存環境に影響を及ぼさないように--securityを推奨します。
ただし、パッケージのバージョン変更は発生します。

```bash
sudo dnf upgrade --security -y
sudo needs-restarting -r # 事前にdnf-utilsをインストールしておくと、このコマンドで再起動の要否を判定できます。

## 再起動の必要がなければ、以下のメッセージが出力されます。
## No core libraries or services have been updated since boot-up.
## Reboot should not be necessary.

```

セキュリティアドバイザリ(CVE等)に関するパッケージ更新を適用(フォーマル版)

セキュリティ更新をするときには、既存環境に影響を及ぼさないように--securityを推奨します。
ただし、パッケージのバージョン変更は発生します。

変更にシビアな環境では、更新対象のパッケージの変更点について事前に調べておかないといけません。
また、全てのセキュリティアップデートがこのコマンドで適用されず、通常のパッケージ更新をしないといけないものがあるようです。
(情報収集しないで、手順通りポチポチカチカチ更新するのは、やはりダメのようですね。)

```bash

# 本番環境で実行するときには、メンテナンスウィンドウは設けたうえで、以下の手順を踏むこと推奨します。
# 再起動をかけられる状態にしておいたほうが、都合がよいです。

# ```
# sudo dnf list --security <パッケージ名を含めることも可>| tee "$(date +%Y%m%d)_dnf_list_security.log" # セキュリティ更新のみリスト表示
# sudo dnf upgrade --security --assumeno <パッケージ名を含めることも可> | tee "$(date +%Y%m%d)_dnf_upgrade_security.log" # セキュリティ更新時に起きることをドライランできる。
# ```

sudo dnf upgrade --security -y <パッケージ名を含めることも可>

sudo needs-restarting -r # 事前にdnf-utilsをインストールしておくと、このコマンドで再起動の要否を判定できます。

## 再起動の必要がなければ、以下のメッセージが出力されます。
## No core libraries or services have been updated since boot-up.
## Reboot should not be necessary.

```

dnfのアップデートのメタ情報はデフォルトでは、48時間で自動失効し、失効するとOSが同期します。
緊急のセキュリティアップデートの場合には、キャッシュを強制失効が必要かもしれません。
セキュリティアップデート先のバージョンが一致しない場合には、こちらを試してください。
実害は無いと思いますが、--assumenoを実行してもキャッシュ更新は行われます。

```bash
sudo dnf upgrade --security --refresh --assumeno | tee "$(date +%F)_dnf_security_.log" 
```

パッケージ削除(不要な依存関係の削除)

パッケージ削除(不要な依存関係の削除)(カジュアル版)

```bash
# dnf removeは、デフォルトで削除したパッケージしか参照していない不要な依存パッケージも一緒に削除
sudo dnf remove -y <パッケージ名>
```

パッケージ削除(不要な依存関係の削除)(フォーマル版)

```bash
# 本番環境で実行するときには、メンテナンスウィンドウは設けたうえで、以下の手順を踏み、削除されるパッケージを確認する。
# ```
# sudo dnf remove –assumeno <パッケージ名> | tee "$(date +%Y%m%d)_dnf_remove_autoremove.log" # 削除されるパッケージの出力
# ```
# dnf removeは、デフォルトで削除したパッケージしか参照していない不要な依存パッケージも一緒に削除する

sudo dnf remove -y <パッケージ名>

```

パッケージ削除(依存関係をのこして削除)

パッケージ削除(依存関係をのこして削除)(カジュアル版)

```bash
# 「不要な依存パッケージ」と判定されるものを、CLIから使っている場合などでは影響する可能性がある。
# --noautoremoveは、対象以外のパッケージは削除しない。
sudo dnf remove --noautoremove -y <パッケージ名>
```

パッケージ削除(依存関係をのこして削除)(フォーマル版)

```bash

# 本番環境で実行するときには、メンテナンスウィンドウは設けたうえで、以下の手順を踏み、削除されるパッケージを確認する。
# 「不要な依存パッケージ」と判定されるものを、CLIから使っている場合などでは影響する可能性がある。
# ```
# sudo dnf remove --noautoremove –assumeno <パッケージ名> | tee "$(date +%Y%m%d)_dnf_remove_noautoremove.log" # 削除されるパッケージの出力
# ```
# --noautoremoveは、対象以外のパッケージは削除しない。
sudo dnf remove --noautoremove -y <パッケージ名>
```

インストール済みパッケージの出力・検索

```bash
# OSにインストールされているパッケージを一覧表示
# 通常は、grepするなどして利用するほど大量に出力される。バックアップとして結果を出力するケースもある。
dnf list installed
```

未インストールの利用可能なリポジトリのパッケージの出力

```bash
dnf list available # grepを使ってパッケージをフィルタすることを推奨する。
```

パッケージ詳細情報

```bash
# installed/availableのパッケージでのバージョンやリポジトリ、説明文を詳細表示
dnf info <パッケージ名>
```

キャッシュ更新

```bash
dnf makecache --refresh # 最新のリポジトリ情報に更新する。
```

キャッシュ全削除

dnfのキャッシュがストレージを逼迫するような時にしばしば実行します。

キャッシュが良くないことをしている場合も、これで解決することがあります。

```bash
sudo dnf clean all # ダウンロード済みRPMやメタデータのキャッシュを全てクリア
```

 

若手エンジニア志望者を募集!支度金あり

LogStare Collector 無償版

記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。

当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。

【Catalystスイッチ】VTYへの送信元IP制御前のページ

Apresia NP2100-24T4X監視設定の方法次のページ

ピックアップ記事

  1. 自社製品をAMIにしてAWSマーケットプレイスへ出品
  2. ログフォワーダー「okurun.jar」について
  3. Zabbixヒストリデータのレポート生成について
  4. IoT機器「Raspberry pi」とLogStare Collectorで温…

関連記事

  1. NW機器

    Palo AltoにおけるCEF形式ログ送信設定

    当記事では、Palo Alto におけるCEF形式でのログの送信方法に…

  2. NW機器

    【FortiGate】インスペクションモードについて

    インスペクションモードとはスループットよりセキュリティを優先させる…

  3. NW機器

    SonicWall UTMのログ活用事例

    当記事では、SonicWall社製UTMのログ活用事例としてSyslo…

  4. NW機器

    LogStare Collectorにて、vCenter Server Appliance のSNM…

    当記事では、LogStare CollectorにおけるvCenter…

  5. NW機器

    Allied Telesis(インテリジェント・エッジ・スイッチ)にSNMP v1/SNMPv2c設…

    当記事では、Allied Telesis社のインテリジェント・エッジ・…

  6. FortiGateの冗長化構成におけるha-direct設定方法について

    NW機器

    FortiGateの冗長化構成(HA構成)におけるha-direct設定について

    当記事では、冗長構成(HA構成)のFortiGateにおけるha-di…

若手エンジニア志望者を募集!
LogStare Collector 無償版
クラウド活用の「困った」「焦った」事例
月額200円でM356の監査ログの運用レベルUP LogStare M365
AWSのログ分析・モニタリングに 次世代のマネージド・セキュリティ・プラットフォーム LogStare

  1. 実践記事

    DNSキャッシュポイズニングやってみた
  2. NW機器

    SonicWall UTMにSyslog送信設定を追加する方法について
  3. デフォルト画像イメージ

    FortiGate

    FortiGateのSD-WAN設定について
  4. SNMPを触ってみた

    ログ分析・監視テクニック

    SNMPとは?新入社員が生まれてはじめて触ってみた!
  5. ログ分析・監視テクニック

    nProbeであらゆる通信をログに記録し可視化する
PAGE TOP