助け合いフォーラム

LPIC

LPIC Lv1-101(Ver5.0)
問題ID : 3344
問題を開く
zypperコマンドを使用して、「emacs」で始まる名前のパッケージをすべてインストールしたい。適切なコマンドは次のうちどれか。(2つ選択)

正解

zypper install emacs*

解説

ZypperはopenSUSE(SUSE Linuxから改名)が採用しているコマンドラインのパッケージ管理ツールです。
aptコマンドやyumコマンドのように、zypperコマンドでリポジトリやパッケージの操作を行えます。

zypperコマンドの書式および主なサブコマンドは以下のとおりです。


パッケージ名には任意の文字を表すワイルドカードが使えます。

したがって、正解は
・zypper install emacs*
です。

以下は実行例です。


その他の選択肢については、以下のとおりです。

・zypper update emacs*
「update」はアップデートをするサブコマンドですので、誤りです。

・zypper repos emacs*
「repos」はリポジトリの一覧を表示するサブコマンドですので、誤りです。

・zypper add emacs*
「add」は存在しないサブコマンドですので、誤りです。

・zypper get emacs*
「get」は存在しないサブコマンドですので、誤りです。

参考

Linuxで使用するパッケージとは、ソフトウェアの実行ファイル、設定ファイル、ライブラリ、マニュアルなどが含まれているファイルのことです。パッケージおよびその管理ツールを使用することによって、ソフトウェアのインストール・アンインストールなどが容易にできるようになります。

Red Hat Linuxが開発したパッケージにRPM(Red Hat Package Manager)形式があります。現在はRed Hat Enterprise Linux(RHEL)、CentOS、openSUSEなど、多くのディストリビューションが使用しています。
RPM形式のパッケージファイル名は以下のような形式です。

パッケージ名-バージョン番号-リリース番号.アーキテクチャ名.rpm

RPM形式のパッケージ管理ツールには以下の2つがあります。

●RPMツール
RPM系パッケージを管理する基本的なツールです。設定ファイルは「/usr/lib/rpm/rpmrc」です。
RPMツールの主なコマンドは以下のとおりです。

・rpmコマンド
パッケージのインストール・アンインストールなど、基本的なパッケージ管理を行うコマンド
(Debian系Linuxでは、dpkgがほぼ同等のコマンドにあたる)

・rpm2cpio
RPM系パッケージをcpio形式のアーカイブに変換するコマンド
(cpioは、Linuxで長く使われているアーカイブ形式)

●YUM(Yellowdog Updater Modified)ツール
YUMツールはRPMツールを拡張したツール群です。インターネット上ないしはメディア上のパッケージ情報のデータベースを使い、依存関係を調整しながらパッケージ管理を行うことができます。依存関係とは、あるパッケージが動作するために別のパッケージを必要とする関係のことをいいます。
設定ファイルは「/etc/yum.conf」、パッケージの取得元(リポジトリ)は「/etc/yum.repos.d」ディレクトリ内のファイルで設定します。
なお、リポジトリ情報を追加するには、「/etc/yum.repos.d」にリポジトリの情報を記述した拡張子.repoのファイルを配置します。

YUMツールの主なコマンドは以下のとおりです。

・yumコマンド
パッケージのインストール・アンインストールなどを行うコマンド
(Debian系Linuxでは、apt-getがほぼ同等のコマンドにあたる)

●DNFツール
YUMの後継となるパッケージ管理ツールです。Linuxディストリビューションの1つであるFedoraでは、Fedora 22からデフォルトのパッケージ管理ツールになっています。
dnfコマンドでは、yumコマンドとほぼ同じオプションが使用できます。また、リポジトリもyumと同様に「/etc/yum.repos.d」ディレクトリを使用します。

●Zypperツール
ZypperはopenSUSE(SUSE Linuxから改名)が採用しているコマンドラインのパッケージ管理ツールです。
aptコマンドやyumコマンドのように、zypperコマンドでリポジトリやパッケージの操作を行えます。
上に戻る

正解が間違っています

投稿日 2022/07/16

*がシェルにより展開されてしまうため,カレントディレクトリにemacsから始まるファイル名のファイルが存在すると,zypper install emacs*zypper in emacs*では「emacs」で始まる名前のパッケージをインストールできないことがあります.

$ touch emacsfile
$ sudo zypper install emacs*
Loading repository data...
Reading installed packages...
'emacsfile' not found in package names. Trying capabilities.
No provider of 'emacsfile' found.
Resolving package dependencies...
Nothing to do.

そこで,正解は以下が正しいと考えます.

  • zypper install "emacs*"
  • zypper in "emacs*"
2022/07/19 21:07

ちょっと確認したいのですが。

質問タイトルが「正解が間違っています」となっていますが、「正解は以下が正しいと考えます」と提示されているのは 正答とされているもののより厳密な記述 となっています。
そこからすると、「正答が間違っている」のではなく「正答選択肢の記述では失敗する場合がある」と言いたいのでしょうか?
言い方を変えると「問題ID:3344の選択肢の中には正解がないと言いたいのか違うのか」がよくわからないです。

選択形式の問題の解答としては「提示された選択肢の中から適切なものを選ぶ」のも試験対策としては必須のスキルですし、正答とされている選択肢で意図的に手を加えず問題の意図通りに実行できるのであれば、それは特に問題ないのではないかと思います。もちろん、実行する環境次第ではおっしゃっているシェル展開で失敗する場合もありますが、それは問題ID:3447などで学習してますし、この問題で再学習するほどのことではないのではと思っています。

例えば逆に、選択肢に以下の二つ

  • zypper install "emacs*"
  • zypper install emacs*

があったとして、「実行時のディレクトリにファイル名がemacsで始まるファイルがあるかどうか」と言う言及がなかったらどっちも正解ってなりません?厳密なやり方を知っているのは素晴らしいと思うのですが、選択肢の中に「問題の意図通りの結果が得られるコマンド」があるのであればそれは別に不適切ではないと思いますよ。


コメント

o ottijp

2022/07/21 23:03

> そこからすると、「正答が間違っている」のではなく「正答選択肢の記述では失敗する場合がある」と言いたいのでしょうか? はい.そうです. > 選択肢の中に「問題の意図通りの結果が得られるコマンド」があるのであればそれは別に不適切ではないと思いますよ。 そうとも考えられます.しかし, https://mondai.ping-t.com/g/posts/142 では,同様に実行時の状況に依存する正答が修正されたので,不適切と捉えるのがよいと考えました.

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?