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制御前のページ

ピックアップ記事

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

関連記事

  1. NW機器

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

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

  2. A10 Thunderのアクセスログを収集する

    NW機器

    A10 Thunderのアクセスログを収集するためのForward Proxy、SYSLOGなどの設…

    当記事では、A10ネットワークス社  Thunder シリーズを、フォ…

  3. WatchGuard FireboxをSNMPで監視する

    NW機器

    WatchGuard FireboxをSNMPで監視するための設定方法

    当記事では、WatchGuard社FireboxシリーズのSNMP(v…

  4. PALOALTOのURLフィルタリングのカテゴリ例外における脆弱性
  5. NW機器

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

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

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

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

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

    FortiGate

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

    PaloAltoのIPsec IKEv1 Phase1におけるトラブルシューティ…
  4. NW機器

    Nutanix Prism ElementにおけるSNMP監視/REST API…
  5. SNMPを触ってみた

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

    SNMPとは?新入社員が生まれてはじめて触ってみた!
PAGE TOP