dnf コマンド
dnf コマンドとは
dnf [Dandified Yum (ダンディファイド ヤム)] - Red Hat系のLinuxディストリビューションで使われ値エルRPMパッケージを扱うためのパッケージ管理コマント゛ - 「yum」の後継となるコマント゛
dnf 主なオプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-y | --assumeyes | 全ての問い合わせに対し「yes」選択で実行 |
--assumeno | 全ての問い合わせに対し「no」選択で実行 | |
-C | --cacheonly | パッケージの情報を全くダウンロードせずに、キャッシュだけを使用する |
--refresh | コマンド実行前にパッケージ情報のキャッシュを強制的に更新する | |
-R 分 -c 構成ファイル名 |
--randomwait=分 --config=構成ファイル名 |
最大待ち時間(分)を指定 構成ファイルを指定 |
--enablerepo リポジトリID --disablerepo リポジトリID |
指定したリポジトリを有効にする 指定したリポジトリを無効にする |
|
--repo リポジトリID --repoid リポジトリID |
指定したリポジトリだけを有効にする(複数ある場合は「--repo」「--repoid」を複数回使用する --repoと同じ |
|
--nodocs | ドキュメントをインストールしない | |
--allowerasing | 依存関係を解決するためにインストール済みパッケージの削除を許可 | |
--installroot=場所 | インストール先を指定 | |
--downloaddir=場所 | ダウンロード場所を指定 | |
--downloadonly | ダウンロードだけを行う | |
-x パッケージ名 | --exclude=パッケージ名 --showduplicates |
除外するパッケージを指定 dnfのサブコマンド「info」「search」で重複しているものも表示 |
--color=指定 | 出力メッセージを色つきにするかどうかを「always」「auto」「never」のいずれかで指定 | |
-q | --quiet | 実行時にメッセージを出力しない |
-v | --verbose | 詳しいメッセージを出力する |
dnf の主なコマンド(パッケージ操作関係)
コマンド | 実行内容 |
---|---|
install | 指定されたパッケージに加え、依存関係があるパッケージもインストールする。(既にインストールされていた場合は更新する) |
reinstall | パッケージを再インストールする |
downgrade | パッケージを以前のバージョンのものにダウングレード |
remove | パッケージを依存関係のあるパッケージとともに削除 |
autoremove | 依存関係のためにインストールされていた不要なパッケージを削除 |
upgrade | パッケージを更新 |
upgrade-minimal | 不具合の修正や機能追加、セキュリティ対応など「重要な更新」だけを更新 |
distro-sync | 最新の利用可能なパージョンへインストール済みパッケージを同期 |
mark install | 指定したパッケージを手動でインストールしたものとする(autoremoveの対象外となることが利点「dnf mark remove パッケージ名」でマークを削除 |
dnf の主なコマンド(情報関係)
コマンド | 実行内容 |
---|---|
info | パッケージの情報を表示する(「--installed」「--upgrate」などのオプションが使用可能) |
list | パッケージを一覧表示する(「--installed」「--upgrate」などのオプションが使用可能) |
deplist | パッケージの依存性の一覧を表示 |
group | パッケージグループのサマリーを表示 |
search repoquery |
指定した文字列でパッケージの詳細を検索する キーワードに一致するパッケージを検索する |
provides | ファイル名などを指定して、該当するファイルを提供するパッケージを検索 |
repolist | ソフトウェアリポジトリの構成を表示 |
dnf の主なコマンド(メンテナンス関係 / その他)
コマンド | 実行内容 |
---|---|
makecache | パッケージリストを格納したデータベース(リポジトリのメタデータ)をダウンロードし、キャッシュを作成 / 更新する |
check | ローカルのパッケージデータベースに問題がないかどうか確認 |
check-update | 更新に利用できるパッケージを確認 |
clean | キャッシュデータを削除 |
shell | 対話型のシェル(DNFシェル)を実行 |
updateinfo | リポジトリの更新情報を表示 |
history | パッケージのインストールや削除の履歴を表示 |
adduser useraddの違い
比較表
OS | useradd | adduser |
---|---|---|
CentOS | 作成時にパスワードが 設定されない |
useraddへの シンボリックリンク |
Fedora | 作成時にパスワードが 設定されない |
useraddへの シンボリックリンク |
Ubuntu | インタラクションが発生しない デフォルトではホームが 作成されない |
インタラクションが発生 |
FreeBSD | インタラクションが発生しない | インタラクションが発生 |
インタラクションが発生しない ⇒ 自動かが容易
Debian系ではadduser
の利用を推奨
参照する設定ファイル
useradd
/etc/default/useradd
- デフォルトのログインシェルは /bin/sh
/etc/skel/
- .bash_logout
- .bashrc
- .profile
- /etc/login.defs
adduser
- etc/adduser.conf
- /usr/local/sbin/adduser.local
- /etc/skel/
- .bash_logout
- .bashrc
- .profile
IX2105 基本コマンド
|
コマンド |
コマンド略 |
|
モード切替 |
通常モード⇒設定モード |
enable-configure |
en |
configure |
c |
||
設定モード⇒通常モード |
exit |
|
|
[Ctrl] + [z] |
|
||
設定内容の確認 |
show running-config |
show config |
|
設定情報の保存 |
write memory |
|
|
保存されているコンフィグの削除 *要再起動 |
erase startup-config |
|
|
再起動 *通常モードで行う |
restart |
|
|
設定の削除 |
no + [スペース] + 削除したい設定行 |
|
|
ホスト名の設定 |
hostname [HostName] |
|
|
ログイン名の入力 |
username [UserName] password plain 1 [UserPassword] administrator/operator/monitor |
macとIXをコンソール接続する
USBタイプCのコンソールケーブルもあるようだけれど、今回の構成は、コンソールケーブル⇒コンソールアダプタ(USBタイプA)⇒USBアダプタ(USBタイプC)という接続。
問題なく接続できたので、既存のケーブルで接続。
[環境]
macOS Big Sur バージョン 11.4
IX2105
■接続しているインターフェースの確認
該当のインターフェース:/dev/tty.usbserial-14530
$ ls -l /dev/tty.*
crw-rw-rw- 1 root wheel 22, 8 6 12 12:58 /dev/tty.Bluetooth-Incoming-Port
crw-rw-rw- 1 root wheel 22, 10 6 12 12:58 /dev/tty.EarFunFree-SerialPort
crw-rw-rw- 1 root wheel 22, 12 6 13 12:34 /dev/tty.usbserial-14530
■コンソール接続
$ screen /dev/tty.usbserial-14530
Router#
[2021.06.19 追記]
エラー:cannot open line '/dev/tty.usbserial' for R/W: resource busy で、ログインできない。
原因:screenのセッションが残っているため
解決法:$ lsof | grep usbserial でセッション番号を確認
$ screen -x セッション番号
[2021.06.27 追記]
デタッチされているセッションがあった場合、下記メッセー位が表示される。
「cannot open line '/dev/tty.usb***** for R/W Resouce busy」
# screen -list
screenでデタッチされているセッションリストを表示し、プロセスIDを確認
#screen -r [プロセスID]
ログイン可能となる。
VirtualBox ネットワーク設定
BlueOnyx5210RAlmaのテスト環境作りのため、VirtualBoxにインストール
その際のVirtualBoxのネットワーク設定をメモ
■VirtualBoxのネットワークDefault設定
NAT(Network Address Translation)
ゲストOS→外部ネットワークに接続可
*ゲストOS⇔ホストOS接続不可
■ゲストOS⇔ホストOS接続可にするための設定は、下記のどちらか
・NAT+ポートフォワーディング
・NAT+ホストオンリーアダプター
今回は、色々な機能(ポート)使うのでホストオンリーアダプターを選択
●ホストネットワークの確認
[ファイル]-[ホストネットワークマネージャー]-[
[アダプタ]-IPv4アドレス:
[DHCPサーバ]-サーバアドレス:
□NAT+ホストオンリーアダプター
・アダプター1 ・ゲストOSから外部ネットワークは接続可 ・ホストOSや外部からゲストOSは接続不可
・アダブタ―2 ・ホストOSからゲストOSは接続可 ・外部からゲストOSへは接続不可
[設定]-[ネットワーク]
アダプター1 割り当て:NAT
アダプター2 ホストオンリーアダプター ネットワークアダプタを有効化にチェック
●ホストネットワークの確認 *アダプター2に設定するため事前に設定が必要
[ファイル]-[ホストネットワークマネージャー]-[
[アダプタ]-IPv4アドレス:
[DHCPサーバ]-サーバアドレス:
●VirtualBox側の設定後、OSのネットワーク設定が必要
# nmtui
[NetworkManager TUI]-[Edit a connection]
System eth0 ←NATのアダプタ IPv4 <Automatic>
System eth1 ←ホストオンリーアダプタのアダプタ IPv4 <Manual> VirtualBoxホストネットワーク設定に合わせ設定
*いずれもIPv6 <Ignore>
因みに、ポートフォワーディングの場合は、下記の要領必要ポートを設定して利用する
□NAT+ポートフォワーディング
*ポートフォワーディング:
ゲストOSをServerと想定
・ローカルホストの8800ポートへアクセス→
・ホストOSからのhttpアクセスを可能にする
[設定]-[ネットワーク]
アダプター1 割り当て:NAT
▽[高度]ポートフォワーディング:「+」ボタン
・名前:srv http プロトコル:TCP ホストポート:8800 ゲストポート:80
・名前:srv ssh プロトコル:TCP ホストポート:2200 ゲストポート:22
[確認]ホストOSからポート8800でhttp接続
ホストOSからポート2200でssh接続
CentOS6でpython3を利用する方法
CentOS6は、yumがpython2で動くので、システムにpython3を入れると、既存環境に影響を与える可能性がある。ので、仮想環境を構築することで実現する。
python3環境構築
・pyenv pythonの複数バージョンをインストールして切り替えることが可能
・virtualenv 隔離されたpython仮想環境を提供
■依存パッケージのインストール
調べてみると事前にインストールが必要なものがある。という説明が多かったが、既にインストール済みのものばかりだったので、エラーが出た時は、依存パッケージが必要ということを忘れないために残しておく。
$ yum install gcc gcc-c++ make git openssl-devel bzip2-devel zlib-devel readline-devel sqlite-devel bzip2 sqlite zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel
□SQLiteとreadlineはいってないと、インストール時に怒られる
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
■pyenvのインストール *個人的に使いたかったので ~/ 配下にインストール
$ git clone http://github.com/yyuu/pyenv.git ~/.pyenv
$ vi ~/.bashrc
-----------------------------------------------------
全ユーザで共有するときは、下記にインストールする。
$ git clone git://github.com/yyuu/pyenv.git /usr/local/pyenv
$ cd /usr/local/pyenv
$ mkdir {versions,shims}
-----------------------------------------------------
■ログイン時に設定,initを実行するように設定しておく
------------------------
export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi
------------------------
$ source ~/.bashrc
$ cd plugins/
$ git clone git://github.com/yyuu/pyenv-virtualenv.git *パッケージの仮想環境を構築するプラグイン
$ git clone git://github.com/yyuu/pyenv-update.git *Pyenv自体をアップデートするプラグイン
■virtualenv install , ディレクトリに仮想環境作成
$ cd ~/.pyenv/plugins
$ git clone http://github.com/yyuu/pyenv-virtualenv.git
□install可能なPythonをリスト表示
$ pyenv install --list
□新しいバージョンが見つからない時はPyenvをアップデートする
$ sudo pyenv update
□virtualenv installインストール
$ cd ~/.pyenv/plugins
$ git clone http://github.com/yyuu/pyenv-virtualenv.git
□versionを指定してインストール、環境作成
*CentOS6.10では最新のpythonはインストール出来なかった。
$ pyenv install 3.6.13
$ pyenv virtualenv 3.6.13 rr_virtualenv
□installされているバージョン、現環境を表示する。
$ pyenv versions
* system (set by /home/tagutagu/.pyenv/version)
3.6.13
3.6.13/envs/rr_virtualenv
rr_virtualenv
□インストールしたバージョンを指定して環境をカレントディレクトリに適用
$ pyenv local rr_virtualenv
□適用されているかチェック
$ pyenv versions
system (set by /home1/tagutagu/.pyenv/version)
3.0.1
* 3.6.13/envs/rr_virtualenv
rr_virtualenv
$ python --version
bash 初期化ファイルの読み込まれる順番と、使い分けを調べてみた
ログインシェルをbashにしている場合、ログイン時以下の順番で設定ファイルが読み込まれ、
PATHを通す、エイリアスを定義する、プログラムを実行するなどの設定が自動で設定される。
■全ユーザに適用される
1./etc/profile ※
全ユーザーに適用されるデフォルトの設定ファイル。
ユーザー単位では編集しない。
■以下、ユーザ単位で適用される
2.~/bash_profile ※
存在していれば読込まれる設定ファイル。
ログイン時に一度設定すればいいもの。余計なものは極力書かない
bashでしか使わないものを記述する
環境変数を設定する (export する変数)
3. ~/.bash_login
~/.bash_profileが存在しない場合にのみ、存在していれば読込まれる設定ファイル。
4.~/.profile
.bash_profile ・ ~/.bash_loginが存在しない場合にのみ、存在していれば読み込まれる設定ファイル
シェルの種類に依存しないものを記述する
環境変数を設定する (export する変数)
GUIアプリで使うものやbin/shで使うものはここに置く(必須)
ログインシェルで使うものはここに置くべき
5.~/.bashrc ※
対話モードで使うものはすべてここに書く
対話モードの bash を起動する時に毎回実行される
bashを起動するたびに設定する必要のあるもの
*標準出力・エラー出力に出力が出るものを書いてはいけない。
bashでしか使わないものを記述する
環境変数でない変数を設定する (export しない変数)
エイリアスを定義する
シェル関数を定義する
コマンドライン補完の設定をする
*環境変数を記述すると、ターミナル以外から起動するプログラム(GUI起動など)に環境変数が渡らなくなってしまう
とりあえず※がついているファイルを設定しておけば良さそう