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

関連記事

  1. NW機器

    FortiGateにおける複数のSyslogサーバへログ転送を行う設定について

    当記事では、FortiGateにおける複数のSyslogサーバへログ転…

  2. NW機器

    FortiGateにおけるTLS通信を利用したSYSLOG送信方法

    当記事では、FortiGateにおけるTLS通信を利用してSyslog…

  3. WatchGuard Fireboxのログを収集するための設定方法

    NW機器

    WatchGuard Fireboxのログを収集するための設定方法

    当記事では、WatchGuard社FireboxシリーズのログをSys…

  4. NW機器

    FortiGateにてGUIにトラフィックログを表示するための設定方法

    FortiGateではトラフィックログを収集できますが、FortiGa…

  5. NW機器

    BIG-IP にSNMP 設定を追加する

    当記事では、F5社のBIG-IPにおける、SNMP の設定方法について…

  6. NW機器

    FortiGateの送信元NAT/宛先NAT設定について

    当記事では、FortiGateにおける送信元NAT(Source NA…

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

  1. SNMPを触ってみた

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

    SNMPとは?新入社員が生まれてはじめて触ってみた!
  2. 実践記事

    DNSキャッシュポイズニングやってみた
  3. ログ分析・監視テクニック

    nProbeであらゆる通信をログに記録し可視化する
  4. デフォルト画像イメージ

    FortiGate

    FortiGateのSD-WAN設定について
  5. NW機器

    PaloAltoのIPsec IKEv1 Phase1におけるトラブルシューティ…
PAGE TOP