102 install / Pkg#
ハードディスクのレイアウト設計#
- Linuxをインストールする際、パーティションを設計する必要がある
- 全てのディレクトリをルートパーティションに収めることも可能だが、通常はディレクトリの用途に応じて、特定のディレクトリを別のパーティションに割り当てる
- Linuxをインストールする際、ルートパーティションから分割できないディレクトリは以下のとおり
- /bin
- /sbin
- /etc
- /lib
- /dev
ディレクトリ | 用途 |
---|---|
/home | 一般ユーザーのホームディレクトリ |
/usr | 起動には不要なプログラムなどを格納 |
/var | ログファイルやメールなど可変ファイル群を格納 |
/opt | 追加でインストールしたパッケージを格納 |
/boot | Linuxカーネルなど起動に必須のファイルを格納 |
/tmp | 一時ファイルを格納 |
/bin | 一般ユーザ用のコマンドを格納 |
/sbin | 管理者用のコマンドを格納 |
/etc | システムの設定ファイルを格納 |
/lib | 共有ライブラリを格納 |
/dev | デバイスファイルを格納 |
Info
opt :容量が大きくなる可能性がある場合は、ルートパーティションとは別のパーティションを割り当てた方がよい
論理ボリュームを作成するまでの手順#
-
物理ボリューム(PV)の作成
pvcreateコマンドを使用して作成します。 -
ボリュームグループ(VG)の作成
vgcreateコマンドを使用して作成します。 -
論理ボリューム(LV)の作成
lvcreateコマンドを使用して作成します。
用語解説#
- LVM
- LVM (Logical Volume Manager) は、物理的な記憶デバイスの領域(物理ボリューム:PV)を複数にまとめてひとつの大きな仮想的な領域(ボリュームグループ:VG)とし、そこから仮想的なパーティション領域(論理ボリューム:LV)を切り出すことで、従来の物理的なパーティションを用いた方法よりも柔軟に記憶領域を管理することができるようにする仕組みのこと
- 具体的には、各論理ボリューム(LVM を利用しない場合のパーティションに相当)のサイズを後から変更したり、単体のハードディスク(LVM では物理ボリュームと呼ぶ)の容量を超えるサイズの論理ボリュームを作ったり、後から新たな物理ボリュームを追加してボリュームグループ全体のサイズを増やしたり、不要な特定の物理ボリュームだけをボリュームグループから削除したり、といったことが可能
- 物理ボリューム (PV:Physical Volume)
- 物理的なハードディスクやパーティション
- ボリュームグループ (VG:Volume Group)
- 物理ボリュームを集めて作る、仮想的な領域(仮想的なハードディスクのようなもの)
- 論理ボリューム (LV:Logical Volume)
- ボリュームグループの一部(または全部)を使って作る、仮想的なパーティション。従来のパーティションと同じように、この論理ボリューム上にファイルシステムを作って利用可能
- ESP(EFIシステムパーティション)
- ESP(EFIシステムパーティション)はUEFIシステムにおいて、物理的なマシンを起動し、ファームウエアが読み込まれた後、その後の起動シーケンスで最初にアクセスされる領域になります。
- ESPはFATでフォーマットされ、ブートローダなどの他、起動に必要なドライバやプログラムも置かれます。
- UEFIシステムではブートローダは必ずしも必要ではなく、UEFIブートマネージャから直接カーネルを起動することも可能
- RAID
- (Linux システム上のソフトウェア)RAID で作成されるのは仮想的なひとつの論理ドライブ(RAID アレイ)のこと
- RAID アレイを使うことで読み書きの高速化、データの安全性の確保などが可能
- PV:LVM における物理ボリューム (Physical Volume) の略称
- VG:LVM におけるボリュームグループ (Volume Group) の略称
- LV:LVM における論理ボリューム (Logical Volume) の略称
ブートマネージャのインストール#
- GRUBのバージョンが0.9x系のものを「GRUB Legacy」、1.9以降のものを「GRUB2」と呼ぶ
- どちらのバージョンもインストールは、grub-installコマンドを利用
- GRUBに代表されるブートローダはHDDの最初のセクタ(512バイト)にあるMBR(マスターブートレコード)に格納されている
- MBRは使用する領域が決まっており、ブートローダは先頭の446バイトの領域に格納されている
dd
コマンドはデータをコピーするコマンド- ddコマンドのbs(ブロックサイズ)オプションは一度に書き込むサイズを指定します。
- ブートローダ部分だけに書き込みを行う際には、446を指定する必要がある
dd if=mbr_backup.img of=/dev/sda bs=[] count=1
- なお、MBRにインストールされるGRUBのプログラム(stage1)のサイズは440バイトのため、MBRにあるGRUBのstage1を読み書きする場合はbs=440と指定することもできる
- dd if=/dev/zero of=/dev/sda bs=446 count=1 (ブートローダのみがゼロクリアされる)
- dd if=バックアップファイル of=/dev/hda bs=446 count=1 (既存のパーティションテーブルを残してMBRが復元される)
- dd if=/dev/hda of=バックアップファイル bs=512 count=1 (MBRがバックアップされる)
GRUB Legacyの設定ファイル#
- ブートローダであるGRUB Legacy(GRUB1)の設定ファイルは
/boot/grub/menu.lst
- ディストリビューションによっては
/boot/grub/grub.conf
- GRUB Legacyの設定ファイルでルートパーティションを指定するには、「root (hdディスク番号,パーティション番号)」と指定し、その際、番号はどちらも0から数える
- なお、GRUB Legacy(GRUB1)は設定ファイル
/boot/grub/menu.lst
を変更しても、実行するコマンドはない - 例)
- 1番目のディスクの1番目のパーティション → root (hd0,0)
- 1番目のディスクの2番目のパーティション → root (hd0,1)
- 2番目のディスクの2番目のパーティション → root (hd1,1)
- GRUB Legacyの設定ファイルにおいてメニューに表示するエントリ名を指定する項目は title
- GRUB Legacyの設定ファイルにおいてルートパーティションを指定する項目 root
GRUB2の設定ファイル#
- GRUB2の設定ファイルは
/boot/grub/grub.cfg
- /boot/grub/grub.cfgファイルを直接編集することはない
- 設定内容は
/etc/default/gruba
ファイルおよび/etc/grub.d
ディレクトリ内のファイルに記述し、grub-mkconfig
コマンドで設定内容を/boot/grub/grub.cfg
ファイルに反映させる - GRUB2の設定ファイルにおいて、ロードするモジュールを指定する項目は
insmod
- GRUB2の設定ファイルにおいて、各項目の名前としてメニューに表示するエントリ名を指定する項目は
menuentry
- GRUB2の設定ファイルにおいて設定項目を指定するキーワードは
set
-
参考:
/boot/grub/grub.cfg
root@ubuntu:/# cat /boot/grub/grub.cfg # # DO NOT EDIT THIS FILE # # It is automatically generated by grub-mkconfig using templates # from /etc/grub.d and settings from /etc/default/grub # ### BEGIN /etc/grub.d/00_header ### if [ -s $prefix/grubenv ]; then set have_grubenv=true load_env fi if [ "${initrdfail}" = 2 ]; then set initrdfail= elif [ "${initrdfail}" = 1 ]; then set next_entry="${prev_entry}" set prev_entry= save_env prev_entry if [ "${next_entry}" ]; then set initrdfail=2 fi fi ... <<< snip >>> ... ### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/10_linux_zfs ### ### END /etc/grub.d/10_linux_zfs ### ### BEGIN /etc/grub.d/20_linux_xen ### ### END /etc/grub.d/20_linux_xen ### ### BEGIN /etc/grub.d/20_memtest86+ ### menuentry 'Memory test (memtest86+)' { insmod part_msdos insmod ext2 set root='hd0,msdos5' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 743075e2-ad08-48a1-bf07-27166c8f69c6 else search --no-floppy --fs-uuid --set=root 743075e2-ad08-48a1-bf07-27166c8f69c6 fi knetbsd /boot/memtest86+.elf } menuentry 'Memory test (memtest86+, serial console 115200)' { insmod part_msdos insmod ext2 set root='hd0,msdos5' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 743075e2-ad08-48a1-bf07-27166c8f69c6 else search --no-floppy --fs-uuid --set=root 743075e2-ad08-48a1-bf07-27166c8f69c6 fi linux16 /boot/memtest86+.bin console=ttyS0,115200n8 } ### END /etc/grub.d/20_memtest86+ ### ### BEGIN /etc/grub.d/30_os-prober ### ### END /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/30_uefi-firmware ### ### END /etc/grub.d/30_uefi-firmware ### ### BEGIN /etc/grub.d/40_custom ### # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. ### END /etc/grub.d/40_custom ### ### BEGIN /etc/grub.d/41_custom ### if [ -f ${config_directory}/custom.cfg ]; then source ${config_directory}/custom.cfg elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then source $prefix/custom.cfg; fi ### END /etc/grub.d/41_custom ###
-
参考:
/etc/default/grub
ファイル
root@ubuntu:/# cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US"
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
- 参考:
/etc/grub.d
ディレクトリ
root@ubuntu:/etc/grub.d# ls -l
total 132
-rwxr-xr-x 1 root root 10627 Jan 13 2021 00_header
-rwxr-xr-x 1 root root 6258 Jan 13 2021 05_debian_theme
-rwxr-xr-x 1 root root 18151 Aug 12 02:18 10_linux
-rwxr-xr-x 1 root root 42359 Jan 13 2021 10_linux_zfs
-rwxr-xr-x 1 root root 12894 Jan 13 2021 20_linux_xen
-rwxr-xr-x 1 root root 1992 Aug 18 2020 20_memtest86+
-rwxr-xr-x 1 root root 12059 Jan 13 2021 30_os-prober
-rwxr-xr-x 1 root root 1424 Jan 13 2021 30_uefi-firmware
-rwxr-xr-x 1 root root 214 Jan 13 2021 40_custom
-rwxr-xr-x 1 root root 216 Jan 13 2021 41_custom
-rw-r--r-- 1 root root 483 Jan 13 2021 README
root@ubuntu:/etc/grub.d#
root@ubuntu:/etc/grub.d#
root@ubuntu:/etc/grub.d# cat README
All executable files in this directory are processed in shell expansion order.
00_*: Reserved for 00_header.
10_*: Native boot entries.
20_*: Third party apps (e.g. memtest86+).
The number namespace in-between is configurable by system installer and/or
administrator. For example, you can add an entry to boot another OS as
01_otheros, 11_otheros, etc, depending on the position you want it to occupy in
the menu; and then adjust the default setting via /etc/default/grub.
Linux カーネル#
Linuxカーネルの主な起動オプションは以下のとおりです。
起動オプション | 説明 |
---|---|
init=パス | initの代わりに指定コマンドを実行 |
root=デバイス名 | ルートパーティションを設定 |
数字(0-6) | 指定したランレベルで起動 |
quit | 起動中有のカーネルからの情報出力を抑制する |
共有ライブラリの管理#
- ライブラリとは、汎用性の高いプログラムを再利用可能な形にしてまとめたもの
- ライブラリそれ自体を単独で実行する事はなく、他のプログラムに組み込んで呼び出す事で、ライブラリの持つ機能を利用できるように
- 複数のプログラムから参照して使えるようにしたものを「共有ライブラリ」という
- なお、プログラムの実行時に共有ライブラリを呼び出すことをダイナミックリンク(動的リンク)という。
- また、プログラムのコンパイル時にライブラリの機能を実行ファイル内に埋め込むことをスタティックリンク(静的リンク)といい、埋め込むライブラリを「静的ライブラリ」と呼ぶ。
- 共有ライブラリを使用するプログラムは、実行時に以下の順で共有ライブラリの場所を検索
- 環境変数
LD_LIBRARY_PATH
- 共有ライブラリの検索パスを指定するための環境変数
/etc/ld.so.cache
ファイル- 共有ライブラリを検索するためのバイナリファイルです。ldconfigコマンドを使用して作成します。
- ldconfigコマンドは共有ライブラリの検索パスが記述されている
/etc/ld.so.conf
ファイルを参照し /etc/ld.so.cache
ファイルを更新(作成)します。/etc/ld.so.cache
ファイルはバイナリファイルであるため/etc/ld.so.conf
ファイルより早く検索できます。/lib
と/usr/lib
ディレクトリ- 一般的に使用される共有ライブラリは、
/lib
と/usr/lib
ディレクトリに格納されている - 64ビット版は
/lib64
と/usr/lib64
に格納されている
Tip
- 共有ライブラリを
/lib
や/usr/lib
ディレクトリ以外に配置する場合は、以下のいずれかの方法で共有ライブラリの検索パスを設定する必要がある - 環境変数LD_LIBRARY_PATHに検索パスを追加する
/etc/ld.so.conf
ファイルに検索パスを追記してldconfigコマンドで/etc/ld.so.cache
ファイルを更新(作成)する
ldconfig#
共有ライブラリのキャッシュファイル/etc/ld.so.cache
を更新するコマンド
Note
/etc/ld.so.cache
は共有ライブラリを検索するためのバイナリファイルです。
ldconfigコマンドは共有ライブラリの検索パスが記述されている/etc/ld.so.conf
ファイルを参照し/etc/ld.so.cache
ファイルを更新(作成)します。
なお、ldconfigは管理者(rootユーザ)のみが使用できるコマンドです。
ldd#
あるプログラムが必要としている共有ライブラリを表示するコマンド
-
(例)「/bin/bash」を実行するときに必要となる共有ライブラリを調べる
ldd /bin/bash
-
表示例:
root@ubuntu:/# ldd /bin/bash linux-vdso.so.1 (0x00007ffce55ea000) libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007fbac67a0000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbac679a000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbac65a8000) /lib64/ld-linux-x86-64.so.2 (0x00007fbac6910000)
Debianパッケージ管理#
dpkg#
- dpkgはDebian形式のパッケージのインストール・アンインストールなど、基本的なパッケージ管理を行うコマンド
- dpkgコマンドの書式および主なオプション・アクションは以下のとおりです。
dpkg [①オプション] ②アクション
①オプション | 説明 |
---|---|
-E | 同じバージョンがすでにインストールされている場合、インストールは行わない |
-G | 新バージョンがすでにインストールされている場合、インストールはしない |
-R | ディレクトリ構造を再帰的に処理する |
②アクション | 説明 |
---|---|
-i (--install) | パッケージファイル名を指定して、パッケージをインストール |
-I | パッケージファイル名を指定して、インストール済みの詳細情報を表示 |
-r (--remove) | パッケージ名を指定して、パッケージをアンインストール (設定ファイルは残す) |
-P (--purge) | パッケージ名を指定して、パッケージをアンインストール (設定ファイルを含めて完全に削除) |
-l (--list) | インストール済みパッケージを検索して表示 |
-L (--listfiles) | パッケージ名を指定して、パッケージからインストールされたファイルを一覧表示 |
-s (--status) | パッケージ名を指定して、インストール済みのパッケージの詳細情報の表示 |
-S (--search) | 指定したファイルが、どのパッケージからインストールされたものかを調査 |
-c (--audit) | パッケージファイル名を指定して、パッケージに含まれるファイルの一覧表示 |
-C | パッケージのインストール状態を検査 |
dpkg-reconfigure#
dpkgツールにおいてインストール済みのパッケージを、インストールした時と同じように再設定するコマンド
apt-get#
- apt-getコマンドは、APT(Advanced Packaging Tool)というパッケージ管理ツールに含まれるコマンド。
- apt-getコマンドはアプリケーションの依存関係を調整しながらパッケージのインストール、アップグレードを行う
- インターネットで最新パッケージを入手してインストールと依存関係の解決ができる
apt-get [①オプション] ②サブコマンド
①apt-getコマンドのオプション | 説明 |
---|---|
-d | インストールせずに、ダウンロードのみ行う ( /var/cache/apt/archives に保存 ) |
-s | システムを変更せずに、動作をシミュレートする |
--purge | 設定ファイルを含めて、パッケージを削除する ( removeコマンドと一緒に指定する) |
②apt-getのサブコマンド | 説明 |
---|---|
clean | ダウンロードしたパッケージファイルを削除する |
dist-upgrade | Debianのシステムを最新にアップグレードする |
install | 指定したパッケージをインストール、またはアップグレードする |
remove | 指定したパッケージをアンインストール ( 設定ファイルは残す ) |
update | パッケージのリスト情報(データベース)を最新に更新する |
upgrade | システムの全パッケージを最新版にアップグレードする |
apt-cache#
- apt-cacheコマンドは、パッケージ情報の照会と検索が可能なコマンド
- 照会や検索を行う際にそのパッケージがインストールされていなくても実行できる。
apt-cacheのサブコマンド | 説明 |
---|---|
search キーワード | 指定したキーワードを含むパッケージの検索 |
show パッケージ名 | 指定したパッケージの詳細情報を表示 |
showpkg パッケージ名 | 指定したパッケージのバージョン、依存関係を表示 |
depends パッケージ名 | 指定したパッケージが依存するパッケージの一覧を表示 |
aptitude#
aptitudeコマンドは、apt-getやapt-cacheコマンドより高度なパッケージ管理機能を持っています。
aptitudeのサブコマンド | 説明 |
---|---|
update | パッケージのリスト情報(データベース)を最新に更新 |
show パッケージ名 | 指定したパッケージの詳細情報を表示 |
search パターン | 指定したパターンでのパッケージ検索 ( 正規表現を使用可能 ) |
install パッケージ名 | 指定したパッケージをインストールまたはアップグレード |
remove パッケージ名 | 設定ファイルを残して、パッケージをアンインストール |
purge パッケージ名 | 設定ファイルも含めて、パッケージをアンインストール |
download パッケージ名 | 指定したパッケージファイルをダウンロード ( カレントディレクトリに保存 ) |
dist-upgrade | Debianのシステム(ディストリビューション)を最新にアップデート |
upgrade | システムの全パッケージをアップデート |
Info
aptコマンドはapt-getとapt-cacheの機能を統合したコマンド
RPMとYUMパッケージ管理#
- RPMはRedHat社が開発したソフトウェアのパッケージ管理システム。
- 現在はRedHat系のCentOS、Fedora等のディストリビューションにも採用されています。
- RPM形式のパッケージファイルの見方は以下のとおり。
- 例として紹介している以下の「nmap」というパッケージは、ポートスキャンを行うアプリケーションです。
- nmap-5.51-2.el6.i686.rpm`
- 【解説】区切りで順に
- パッケージの名称
- ソフトウェアのバージョン
- リリース番号
- アーキテクチャ
- 拡張子
rpm#
構文 : rpm [ オプション ] パッケージ名
RPMコマンド - インストール/アップグレードモード#
インストール・アップグレードモード | 説明 |
---|---|
-i パッケージファイル名 | 指定したキーワードを含むパッケージをインストール |
-U パッケージファイル名 | 指定したパッケージのアップグレード(存在しない場合はインストールする) |
-F パッケージファイル名 | 指定したパッケージのアップグレード(存在しない場合はインストールしない) |
-v (併用オプション) | 詳細な情報を表示する |
-h (併用オプション) | インストールの進行状況を # で表示する |
--nodeps (併用オプション) | パッケージの依存関係を無視してインストール |
--force (併用オプション) | 既存のファイルを新しいものに置き換える |
--prefix (併用オプション) | パッケージをインストールするディレクトリを指定 |
--test (併用オプション) | インストールはせずにテストを実施 |
RPMコマンド - アンインストールモード#
アンインストールモード | 説明 |
---|---|
-e パッケージ名 | パッケージをアンインストール |
--nodeps (併用オプション) | 依存関係を無視してアンインストール |
RPMコマンド - 照会モード#
照会モード | 説明 |
---|---|
-q パッケージ名 | 指定したパッケージがインストールされているか照会 |
-a (併用オプション) | インストール済みの全てのパッケージを表示 |
-c (併用オプション) | 設定ファイルのみを表示 |
-d (併用オプション) | ドキュメントのみを表示 |
-i (併用オプション) | 指定したパッケージの詳細情報を表示 |
-l (併用オプション) | 指定したパッケージに含まれるファイルを一覧表示 |
-R (併用オプション) | 指定したパッケージが依存しているファイルなどを表示 |
-f ファイル名 (併用オプション) | 指定したファイルを含むパッケージ名を表示 |
-p パッケージファイル名 (併用オプション) | 指定したパッケージファイルの情報を表示 |
-changelog (併用オプション) | パッケージの変更履歴を表示 |
よく使用する -q オプションの一覧#
オプション | 説明 |
---|---|
-qa | インストール済みのパッケージ一覧の表示 |
-ql [パッケージ名] | インストール済みのパッケージに含まれるファイルの一覧表示 |
-qi [パッケージ名] | インストール済みのパッケージの詳細情報を表示 |
-qlp [ファイル名] | インストール前のパッケージに含まれるファイルの一覧表示 |
-qip [ファイル名] | インストール前のパッケージの詳細情報を表示 |
パッケージの管理 - YUM#
- YUM(Yellowdog Updater Modified)ツールはAPTツール同様、パッケージ間の依存関係を解決しながらダウンロード、インストール、アップデート、アンインストールすることができるツール。
- YUMの設定は、
/etc/yum.conf
ファイルに記述 - パッケージのリポジトリ情報を設定するためには、
/etc/yum.conf
ファイルに設定を行うか、/etc/yum.repos.d
ディレクトにダウンロードサイトのURLを記載したファイルを格納する /etc/yum.conf
ファイルは基本的に変更の必要はない- YUMツールの設定ファイルは
/etc/yum.conf
で、キャッシュやログの保存先などの基本設定を行います。
パッケージの管理 - DNF#
- DNFはYUMの後継となるパッケージ管理ツール
- dnfコマンドでは、yumコマンドとほぼ同じオプションが使用できる
- また、リポジトリ(パッケージの取得元)もyumと同様に
/etc/yum.repos.d
ディレクトリを使用
yum [ オプション ] サブコマンド#
オプション | 説明 |
---|---|
-y | すべての質問に yes と回答する |
サブコマンド | 説明 |
---|---|
check-update | アップデート対象となるパッケージ一覧を表示 |
update パッケージ名 | 指定したパッケージのアップデート(パッケージ名を省略する全パッケージが対象) |
install パッケージ名 | 指定したパッケージのインストール |
remove パッケージ名 | 指定したパッケージのアンインストール |
info パッケージ名 | 指定したパッケージの情報の表示 |
list | 全パッケージ情報をリスト表示 |
repolist | リポジトリ一覧の表示 |
search キーワード | パッケージ情報をキーワードで検索 |
search all キーワード | パッケージ情報をキーワードで検索(パッケージ名、説明文) |
grouplist | パッケージグループのリスト表示 |
groupinstall グループ | 指定したグループのパッケージをインストール |
yumdownloader#
- パッケージファイルのダウンロードのみを行いたい場合は yumdownloaderコマンドを使用
- yumdownloaderコマンドを使用するために事前にyum-utilsパッケージをインストールする必要がある
- 構文:
yumdownloader [ オプション ] パッケージ名
オプション | 説明 |
---|---|
--source | RPMではなく、ソースファイル(SRPM)をダウンロード |
Zypper#
- ZypperはopenSUSE(SUSE Linuxから改名)が採用しているコマンドラインのパッケージ管理ツール
- aptコマンドやyumコマンドのように、zypperコマンドでリポジトリやパッケージの操作を行えます。
zypper [オプション] サブコマンド
サブコマンド (略) | 説明 |
---|---|
install (in) パッケージ名 | パッケージmのインストr-ル |
update (up) パッケージ名 | パッケージのアップデート |
remove (rm) パッケージ名 | パッケージのアンインスト-ル |
info パッケージ名 | パッケージの詳細情報の表示 |
searce (se) キーワード | 指定したキーワードでパッケージの検索 |
list-updates (lu) [オプション] | アップデート可能なパッケージの表示 |
repos (lr) | リポジトリの一覧表示 |
refresh | リポジトリの更新 |
仮想化のゲストOSとしてのLinux#
- 仮想化とは 仮想化(Virtualization)とは、コンピュータリソースを実際の物理的な構成にとらわれず、 論理的に分割・統合して提供する技術です。仮想化の対象となるコンピュータリソースには サーバやOS、ストレージ、ネットワークなどがあります。
- 仮想化の種類 現在、主に以下の2つの仮想化手法が使われています。
-
ハイパーバイザー型
物理マシン上で動作するハイパーバイザー(仮想化のための専用のOS)上で直接仮想マシンを起動し、 ゲストOS(仮想マシンにインストールしたOS)を動作させる方式です。物理マシンのハードウェアを エミュレー卜(模倣)する完全仮想化を実現できます。ゲストOSからは通常の物理マシン上で動作しているように見えるため、これまでのサーバにOSを インストールしているのと同様の環境を構築できます。ハイパーバイザーがサポートしている 種類のゲストOSであれば、LinuxやWindows、macOSなども使用できます。 ハイパーバイザー型の仮想化ソフトウェアには、Xenや、KVMなどがあります。
-
コンテナ型
OSのリソースを「コンテナ」という単位で隔離して共有する方式です。 OS上のアプリケーションと同レベルの扱いですので、オーバーヘッドが少なく、リソース・構築・管理の面で非常にシンプルになります。 コンテナ型仮想化では、Linuxカーネルの機能によってコンテナごとのユーザ管理やリソース制限を行います。 コンテナ型ソフトウェアには、LXC、Dockerなどがあります。 -
クラウドコンピューティング
クラウドコンピューティングとは、サーバ/ストレージ/アプリケーションなどのリソースをすべてクラウドに置き、 それらのリソースをサービスとして利用するコンピューティング環境です。(「クラウド」の名称は、構成図上 「どのように構築されているかはわからないが、確かにそこにあって利用可能なリソース(例:インターネット)」を 雲のアイコンで表していた事に由来します。) -
SaaS(Software as a Service) ソフトウエアをサービスとして提供します。ユーザはインフラも開発環境も意識することなく、単純にソフトウエアを利用する、 というサービスを受けることができます。
-
PaaS(Platform as a Service) ソフトウエアの開発、実行環境をサービスとして提供します。ユーザは環境構築や保守に気を遣わずに、開発に専念できます。 また、仮想化により、規模をあらかじめ把握できなくても柔軟に増減できるメリットがあります。
-
IaaS(Infrastructure as a Service) サーバ、ストレージ、ネットワーク等、仮想化されたインフラ環境をサービスとして提供する、サーバの仮想化技術と関連が深い サービスモデルです。HaaS(Hardware as a Service)と呼ばれることもあります。 IaaSでは仮想マシンや仮想ネットワーク、ブロックストレージ(ハードディスク)などのリソースを、ユーザにサービスとして 提供しています。
クラウドサービス側でハイパーバイザー型の仮想化環境を提供する場合、ユーザは「インスタンス」と呼ばれる仮想マシンにOSを インストールして使用します。OSのインストールは、あらかじめ用意されたテンプレート(OSイメージ)から行うのが一般的です。 クラウドサービス側でコンテナ型の仮想化環境を提供する場合、ユーザは仮想環境上で動作する「コンテナ」を利用することになります。
また、ユーザが利用するコンテナ環境を選択できる場合もあります。このようにアプリケーションとして利用可能なコンテナは 「アプリケーションコンテナ」と呼ばれます。アプリケーションコンテナの例として、Webサーバやデータベースサーバが組み込まれた ブログサービス環境などがあります。
-
仮想マシンの複製
個々の仮想マシンの環境設定やハードディスクはファイルとして保存されます。それらのファイルをコピーすることで任意の仮想マシンをクローンとして複製できるため、 テンプレートとして使用したり、同様の仕様のシステム展開が容易にできるようになります。ただし、同一の仮想化ソフトウェア上で複製した仮想マシンのUUID (Universally Unique Identifier: 汎用一意識別子、全世界で重複が起きないように生成される一意な値)が重複していると正常に動作しませんので、注意が必要です。
また、ホスト名やIPアドレス、SSH接続時に使用するSSHホスト鍵(公開鍵、秘密鍵)などサーバごとに一意でなければならないものも変更しなければなりません。
上記に加えて、systemdのマシンはホストを識別するための32バイトのマシンIDを持っています。インストール時に、ランダムに生成されるUUIDがマシンIDとして 設定されます。仮想マシンを複製するとマシンIDもコピーされるので、ネットワーク内で重複しないようにクローンのマシンIDを初期化する必要があります。
マシンIDは「/etc/machine-id」ファイルに格納されています。
- (例)
なお、クラウド上のインスタンスはテンプレートから展開されるため、テンプレートから複製された環境を重複しないようにインスタンスごとに変更する必要があります。 この作業をまとめて行う「cloud-init」というパッケージが用意されています。 cloud-initパッケージはクラウド上でなくても、インストールして使うことができます。
例:CentOSの場合
# yum install cloud-init