Note to Self

公開する緊張感で、読み返した時に??にならない自分用メモです

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+ホストオンリーアダプター
 

今回は、色々な機能(ポート)使うのでホストオンリーアダプターを選択

 

●ホストネットワークの確認
[ファイル]-[ホストネットワークマネージャー]-[VirtualBox Host-Only Ethernet Adapter]-[プロパティ]
[アダプタ]-IPv4アドレス:ゲストOSからみたホストOSのIPアドレス
[DHCPサーバ]-サーバアドレス:ゲストOSサーバのアドレス

□NAT+ホストオンリーアダプター
・アダプター1 ・ゲストOSから外部ネットワークは接続可 ・ホストOSや外部からゲストOSは接続不可
・アダブタ―2 ・ホストOSからゲストOSは接続可 ・外部からゲストOSへは接続不可

[設定]-[ネットワーク]
アダプター1 割り当て:NAT 
アダプター2 ホストオンリーアダプター ネットワークアダプタを有効化にチェック

●ホストネットワークの確認 *アダプター2に設定するため事前に設定が必要
[ファイル]-[ホストネットワークマネージャー]-[VirtualBox Host-Only Ethernet Adapter]-[プロパティ]
[アダプタ]-IPv4アドレス:ゲストOSからみたホストOSのIPアドレス
[DHCPサーバ]-サーバアドレス:ゲストOSサーバのアドレス

 

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の80ポートへ転送
・ホスト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起動など)に環境変数が渡らなくなってしまう

 

とりあえず※がついているファイルを設定しておけば良さそう