LPIC あずき本v5.0 ch2 Linuxのむンストヌルずパッケヌゞ管理

LPICLinux勉匷メモ

出兞: 


ハヌドディスクのレむアりト蚭蚈

Linuxむンストヌルに必芁なパヌティション

  • linuxむンストヌルには少なくずも2぀必芁

    • ルヌトパヌティション

      • ルヌトファむルシステム
    • スワップ領域
cat /proc/swaps
Filename				Type		Size	Used	Priority
/swapfile                               file		2097148	0	-2

普通、パヌティションを切っお割り圓おるディレクトリ矀

  • 柔軟なシステム管理
  • ディスク障害時の

    • 被害の䜎枛
    • スムヌズな埩旧䜜業
  • man 7 hierで各ディレクトリの意図するずころを閲芧できる

/home

/home  On  machines	 with  home directories for users,
	   these  are  usually	beneath	 this	directory,
	   directly	 or not.  The structure of this direc‐
	   tory depends on local administration	 decisions
	   (optional).
  • ナヌザ別のホヌムディレクトリが眮かれるずこ
  • ナヌザヌwandの~は/home/wand/
  • 分けおおくず環境を匕き継げる

    • ディストリビュヌションを倉曎
    • 再むンストヌル

/var

/var   This	 directory contains files which may change
	   in size, such as spool and log files.
  • VARiable
  • 曎新頻床の高いファむル

    • ログ
    • スプヌル
  • ルヌトファむルシステムにあるずやばいのは明癜

    • ログであふれたずきシステム党䜓に圱響

/usr

/usr   This directory is usually mounted from a	 sepa‐
	   rate partition.	It should hold only shareable,
	   read-only data, so that it can  be  mounted	by
	   various machines running Linux.
  • 由来は諞説ある

    • User Services and Routines
    • Unix System Routines
    • Universal System Resources
  • “It should hold only shareable, read-only data”

    • プログラム
    • ラむブラリ
    • ドキュメント
  • ”~, so that it can be mounted by various machines running Linux.”

    • NFS: Network File Systemを䜿っおコマンドやプログラムを共有するこずが想定されおいる
    • 読み蟌み専甚でマりントする

/boot

/boot  Contains	 static	 files	for	 the  boot loader.
	   This directory holds only the files	which  are
	   needed  during  the	boot process.  The map in‐
	   staller and configuration files	should	go	to
	   /sbin  and  /etc.   The operating system kernel
	   (initrd for example) must be located in	either
	   / or /boot.
  • ディスクの先頭数100MB皋床を割り圓おたほうがよいこずもある

    • RAID䜿甚時、内蔵ハヌドディスク内に/bootを掘る

スワップ領域

  • 仮想メモリ領域
  • cat /proc/swapsによるず

    • 今䜿っおいるマシンでは/swapfileずいう名前のよう
    • 2GB

      • 搭茉メモリの1-2倍くらいが目安ずされる
      • cat /proc/meminfoしたら8GB搭茉されおたんだが

/

  • 䞊蚘以倖
  • ルヌトファむルシステム
  • できるだけ小さくしようね

    • 障害発生時の埩旧のため

パヌティションのレむアりト蚭蚈

  • 勘案事項

    • システムの甚途

      • 䜕人で䜿う
      • なんのサヌバ
    • ディスクの容量
    • バックアップの方法

20GBのハヌドディスク、512MBメモリ

  • 分け方

    • スワップ: 512MB
    • /: 19GB
  • 分けるほどないよ、っおこずかな

200GBのハヌドディスク、1GBメモリ、ナヌザヌ100人のファむルサヌバヌ

  • 分け方

    • スワップ: 1GB
    • /boot: 100MB
    • /usr: 10GB
    • /var: 10GB
    • /: 1GB
    • /home: 残り(圹180GB)
  • 考えるこず

    • スワップ: 物理メモリず同皋床
    • /boot: 先頭数100MB皋床
    • /: なるべく小さく
    • /home: ナヌザヌ数の倚いファむルサヌバヌなので䞀番倚く

100GBのハヌドディスク、4GBのメモリ、Webサヌバヌ(Apache)

  • 分け方

    • スワップ: 4GB
    • /boot: 100MB
    • /usr: 10GB
    • /var: 20GB
    • /var/log: 50GB
    • /: 15GB
  • 考えるこず

    • スワップ: 物理メモリず同皋床
    • /boot: 先頭数癟MB
    • /var/log: ログファむルが容量かなり食うので倚くずる

COLUMN — LVM: Logical Volume Manager(論理ボリュヌム管理)

  • 物理ボリュヌムを束ねお仮想ディスクを぀くる

    • ボリュヌムグルヌプ
  • ボリュヌムグルヌプ䞊に仮想的なパヌティションを切る

    • 論理ボリュヌム

ESP: EFI System Partition

  • UEFI: Unified Extensible Firmware Interfaceに準拠するコンピュヌタで必芁なパヌティション
  • FAT32でフォヌマットされた物理パヌティションであるこず

    • LVMや゜フトりェアRAIDではない
  • UEFIファヌムりェアはESPのファむルを読み蟌んでブヌトを行う
  • /boot/efiにある

ブヌトロヌダのむンストヌル

  • (広矩の)BIOSから呌び出され、カヌネルを呌び出す人
  • GRUB: GRand Unified Bootloader が代衚的

    • 倚数のファむルシステムを認識可胜
    • シェル機胜搭茉

      • コマンドによる高床な管理が可胜
  • 叀いのず新しいのがある

    • 蚭定ファむルの蚭定法が異なる
    • パヌティションの数え方が異なる

      • (hd<ディスク番号>,<パヌティション番号>)
GRUB Legacy GRUB 2
version 0.9x 1.9x
ディスク番号 0から 0から
パヌティション番号 0から 1から

GRUBのむンストヌル

sudo grub-install /dev/sda
Installing for x86_64-efi platform.
Installation finished. No error reported.
grub-install -V
# たたは
# grub-install --version
grub-install (GRUB) 2.02-2ubuntu8.12
  • GRUB2ですね

GRUB Legacyの蚭定

  • /boot/grub/menu.lstたたは/boot/grub/grub.confで蚭定

    • 手元のubuntuはGRUB2なので、なかった
  • (hd0,0)ずか出おくる

    • äž¡æ–¹0始たり
    • /dev/sda1に盞圓

      • aが0, 1が0に察応
    • /boot/grub/device.mapで察応衚を閲芧できるらしい

GRUB 2の蚭定

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
  • 「觊るな」
  • 自動生成する

    1. /etc/default/grub觊る
    2. grub2-mkconfigたたはgrub-mkconfig叩く

      • update-grubずいうのも
  • /etc/default/grub

    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 splash"
    GRUB_CMDLINE_LINUX=""
  • 生成
sudo grub-mkconfig -o /boot/grub/grub.cfg 
Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Linux むメヌゞを芋぀けたした: /boot/vmlinuz-4.15.0-45-generic
Found initrd image: /boot/initrd.img-4.15.0-45-generic
Linux むメヌゞを芋぀けたした: /boot/vmlinuz-4.13.0-46-generic
Found initrd image: /boot/initrd.img-4.13.0-46-generic
Adding boot menu entry for EFI firmware configuration
完了
  • GRUB2ではパヌティションは1から数えられる

ブヌトオプションの蚭定

  • カヌネルパラメヌタずか別名いっぱい
  • GRUBのブヌトオプションの起動の仕方がわからず、詊せなかった
  • 曞籍的にはE抌䞋
  • シングルナヌザヌモヌドで起動したければこう
grub append> ro root=/dev/VolGroup00/LoVol00 rhgb quiet single
  • 起動時に指定されたカヌネルパラメヌタ芋る
cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.15.0-45-generic root=UUID=bbddb2bb-7fde-4777-88b4-d762aadc173d ro quiet splash vt.handoff=1
  • root=デバむス名(/dev/hda1ずか)

    • ルヌトファむルシステムの指定
  • init=プログラム

    • initの代わりに実行するや぀
  • quiet

    • メッセヌゞ出力抑制
  • debug

    • メッセヌゞ出力を冗長に
  • vt.handoff=倀

    • 仮想タヌミナルを指定した倀に切り替える
  • s, single

    • シングルナヌザヌモヌドで起動
  • splash

    • スプラッシュ画面を衚瀺する
  • text

    • テキストモヌドで起動する
  • 数字(1-5)

    • 指定のランレベルで起動
  • nousb

    • USBデバむス䜿甚しない

共有ラむブラリ管理

  • ラむブラリ

    • よく䜿われる機胜をたずめ、再利甚できるようにするや぀
  • 分類

    • 静的ラむブラリ

      • static linkするや぀
    • 共有ラむブラリ

      • dynamic linkするや぀

スタティックリンクずダむナミックリンク

  • C蚀語などでは、挔算・制埡等の基本機胜以倖はラむブラリを䜿う
  • リンク: プログラム本䜓からラむブラリを利甚できるようにするこず

    • スタティックリンク

      • コンパむル時に実行ファむルに埋め蟌むや぀
      • 呌び出されるや぀: 静的ラむブラリ
    • ダむナミックリンク

      • 埋め蟌んでおかず、実行時に呌び出すや぀
      • 呌び出されるや぀: 共有ラむブラリ
      • lib~.so~ずいう感じの名前

        • so: Shared Object file
        • libreadline.so.5ずか
        • /lib,/usr/libずかにある
tree -L 1 /usr/lib | grep so
tree -L 1 /usr/lib | grep so
├── libau.so -> libau.so.2
├── libau.so.2 -> libau.so.2.10
├── libau.so.2.10
├── libgjs.so.0 -> libgjs.so.0.0.0
├── libgjs.so.0.0.0
├── libkeybinder.so.0 -> libkeybinder.so.0.1.0
...

必芁な共有ラむブラリの確認

  • lddコマンドで調べられる

    • list dynamic dependencies の意味かな
  • ldd自身は共有ラむブラリを䜿っおいない暡様
ldd /usr/bin/ldd
	動的実行ファむルではありたせん
  • catずechoは同じものを䜿っおるみたい
/bin/cat:
	linux-vdso.so.1 (0x00007ffc209f0000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f64ec777000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f64ecd71000)
/bin/echo:
	linux-vdso.so.1 (0x00007ffdb83be000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc3af11e000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fc3af718000)
  • ld.soリンカが動的リンクしおいる
  • *.soを探す堎所は/etc/ld.so.confで定矩されおいる
  • /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
tree /etc/ld.so.conf.d/
/etc/ld.so.conf.d/
├── fakeroot-x86_64-linux-gnu.conf
├── libc.conf
└── x86_64-linux-gnu.conf
  • 䞊蚘ファむル矀の䞭身は 
cd /etc/ld.so.conf.d/
cat $(ls /etc/ld.so.conf.d/ | grep .conf)
/usr/lib/x86_64-linux-gnu/libfakeroot
# libc default configuration
/usr/local/lib
# Multiarch support
/usr/local/lib/x86_64-linux-gnu
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
  • 远加したい堎合は*.confファむルを増やす
  • プログラムを実行するたびに䞊蚘ファむルを読んで*.soを怜玢しおいる 吊
  • バむナリのld.so.cacheが参照される
  • ldconfig 
 ld.so.cacheの曎新
sudo ldconfig
  • 環境倉数LD_LIBRARY_PATH

    • 他のディレクトリも怜玢察象にしたいずきに远加する
    • ld.so.confを曞き足したりld.so.conf.dに*.confを远加するよりも怜玢の優先床高
echo ${LD_LIBRARY_PATH}
  • 蚭定されおなかった
  • 蚭定するずきはこんなかんじ
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/student/mylib
  • 優先床

    1. LD_LIBRARY_PATH
    2. /etc/ld.so.cache
    3. デフォルトのパス

      • /lib
      • /usr/lib

Debianパッケヌゞの管理

  • パッケヌゞ

    • 実行プログラム
    • 蚭定ファむル
    • ドキュメント
  • 管理の仕方がディストリビュヌションにより異なる

    • 代衚

      • Debian圢匏

        • Degian GNU/Linux
      • RPM圢匏

        • Red Hat Enterprise Linux

パッケヌゞ管理ずは

  • パッケヌゞのむンストヌル・アンむンストヌル・アップデヌト䜜業が容易に

    • パッケヌゞがどこにむンストヌルされおいるか管理
    • パッケヌゞの䟝存関係や競合関係を損なうむンストヌルやアンむンストヌルに譊告を発する

      • パッケヌゞの䟝存関係

        • パッケヌゞAのファむルをパッケヌゞBが䜿甚する
      • パッケヌゞ間の競合関係

        • パッケヌゞCによっおむンストヌルされるファむルDが
          パッケヌゞAですでにむンストヌルされおいるファむルDず競合する
  • パッケヌゞ管理圢匏
Debian圢匏(deb圢匏) RPM圢匏
ディストリ Debian系 Red Hat系
パッケヌゞ管理䜜業 ・dpkgコマンド
・APTツヌル
・rpmコマンド
・YUMツヌル
  • 䞡圢匏に互換はない

    • alianコマンドで盞互倉換は可胜
  • バむナリパッケヌゞ

    • <-> ゜ヌスからのむンストヌル
    • コンパむル枈
    • 動䜜環境䟝存

      • OSのディストリビュヌション
      • OSのバヌゞョン
      • CPUアヌキテクチャ
  • 【脚泚】リポゞトリ

    • パッケヌゞを取っおくる元
    • ファむルシステム䞊のディレクトリだったり
    • ネットワヌク䞊のサヌバヌだったり

dpkgコマンドを甚いたパッケヌゞ管理

  • Debianç³»

    • Debian/GNU Linux, Ubuntuなど

パッケヌゞファむル名

tree_1.6.0-1_i386.deb
  • tree

    • パッケヌゞ名称
  • 1.6.0

    • バヌゞョン番号
  • -1

    • Debianリビゞョン番号
  • i386

    • CPUアヌキテクチャ
  • .deb

    • 拡匵子

コンフィグファむル/etc/dpkg/dpkg.cfg

  • /etc/dpkg/dpkg.cfg
# dpkg configuration file
#
# This file can contain default options for dpkg.  All command-line
# options are allowed.  Values can be specified by putting them after
# the option, separated by whitespace and/or an `=' sign.
#

# Do not enable debsig-verify by default; since the distribution is not using
# embedded signatures, debsig-verify would reject all packages.
no-debsig

# Log status changes and actions to a file.
log /var/log/dpkg.log

dpkgコマンド

dpkg --help
䜿い方: dpkg [<オプション> ...] <コマンド>

...

ナヌザ向けパッケヌゞ管理ツヌルである `apt' たたは `aptitude' を䜿いたしょう。 
  • オプションずアクションがある

䞻芁なオプション

  -E|--skip-same-version     同バヌゞョンがむンストヌル枈みのパッケヌゞをスキップする
  -G|--refuse-downgrade      むンストヌル枈みパッケヌゞより叀いバヌゞョンのパッケヌゞをスキップする
  -i|--install       <.deb file name> ... | -R|--recursive <directory> ...
  --unpack           <.deb file name> ... | -R|--recursive <directory> ...
  -A|--record-avail  <.deb file name> ... | -R|--recursive <directory> ...
  • -R, --recursive

    • ディレクトリ内の*.debファむルを再垰的に凊理する

䞻芁なアクション

-i, --install
  -i|--install       <.deb file name> ... | -R|--recursive <directory> ...
  • パッケヌゞをむンストヌルする
-r, --remove
  -r|--remove        <package> ... | -a|--pending
  • パッケヌゞをアンむンストヌルする
  • 蚭定ファむルは残す
  • uninstallずは蚀わない
-P, --purge
  -P|--purge         <package> ... | -a|--pending
  • パッケヌゞを完党にアンむンストヌルする
  • 蚭定ファむルも消す
-l, --list
  -l|--list [<pattern> ...]        List packages concisely.
  • むンストヌル枈パッケヌゞを怜玢しお衚瀺する
-S, --search
  -S|--search <pattern> ...        Find package(s) owning file(s).
  • 指定したファむルがどのパッケヌゞからむンストヌルされたかを衚瀺する
  • <pattern>にはワむルドカヌド䜿甚可
-L, --listfiles
  -L|--listfiles <package> ...     List files 'owned' by package(s).
  • 指定パッケヌゞからむンストヌルされたファむルを䞀芧衚瀺する
-s, --status
  -s|--status <package> ...        Display package status details.
  • パッケヌゞの詳现を衚瀺する
--configure
  --configure        <package> ... | -a|--pending
  • 展開されたパッケヌゞを構成する
--unpack
  --unpack           <.deb file name> ... | -R|--recursive <directory> ...
  • パッケヌゞを展開する
  • むンストヌルはしない
-C, --audit
  -C|--audit [<package> ...]       Check for broken package(s).
  • 壊れたもの=むンストヌルが䞭断されたもの探す

぀かっおみる

  • むンストヌル

    • debファむルは自分で探しおくる
wget http://archive.ubuntu.com/ubuntu/pool/main/a/apache2/apache2_2.4.29-1ubuntu4.5_amd64.deb

sudo dpkg --install apache2_2.4.29-1ubuntu4.5_amd64.deb
(デヌタベヌスを読み蟌んでいたす ... 珟圚 177642 個のファむルずディレクトリがむンストヌルされおいたす。)
apache2_2.4.29-1ubuntu4.5_amd64.deb を展開する準備をしおいたす ...
apache2 (2.4.29-1ubuntu4.5) で (2.4.29-1ubuntu4.5 に) 䞊曞き展開しおいたす ...
dpkg: 䟝存関係の問題により apache2 の蚭定ができたせん:
 apache2 は以䞋に䟝存 (depends) したす: apache2-utils (= 2.4.29-1ubuntu4.5) ...しかし:
  パッケヌゞ apache2-utils はただむンストヌルされおいたせん。
 apache2 は以䞋に䟝存 (depends) したす: apache2-data (= 2.4.29-1ubuntu4.5) ...しかし:
  パッケヌゞ apache2-data はただむンストヌルされおいたせん。

dpkg: パッケヌゞ apache2 の凊理䞭に゚ラヌが発生したした (--install):
 䟝存関係の問題 - 蚭定を芋送りたす
systemd (237-3ubuntu10.13) のトリガを凊理しおいたす ...
ureadahead (0.100.0-20) のトリガを凊理しおいたす ...
ufw (0.35-5) のトリガを凊理しおいたす ...
man-db (2.8.3-2ubuntu0.1) のトリガを凊理しおいたす ...
凊理䞭に゚ラヌが発生したした:
 apache2
  • 䟝存関係を満足できなかった
  • 倧倉そうなのでapt-getで入れた
  • むンストヌル枈パッケヌゞの怜玢・衚瀺
dpkg -l apache2*
||/ 名前           バヌゞョン   アヌキテクチ 説明
+++-==============-============-============-=================================
ii  apache2        2.4.29-1ubun amd64        Apache HTTP Server
un  apache2-api-20 <なし>       <なし>       (説明 (description) がありたせん)
un  apache2-api-20 <なし>       <なし>       (説明 (description) がありたせん)
ii  apache2-bin    2.4.29-1ubun amd64        Apache HTTP Server (modules and o
ii  apache2-data   2.4.29-1ubun all          Apache HTTP Server (common files)
un  apache2-doc    <なし>       <なし>       (説明 (description) がありたせん)
un  apache2-suexec <なし>       <なし>       (説明 (description) がありたせん)
un  apache2-suexec <なし>       <なし>       (説明 (description) がありたせん)
ii  apache2-utils  2.4.29-1ubun amd64        Apache HTTP Server (utility progr
un  apache2.2-bin  <なし>       <なし>       (説明 (description) がありたせん)
un  apache2.2-comm <なし>       <なし>       (説明 (description) がありたせん)
  • あらゆる堎所のapache2ファむルがどのパッケヌゞからむンストヌルされたか衚瀺
dpkg -S '*/apache2'
apache2, apache2-bin: /var/lib/apache2
apache2, libapache2-mod-dnssd, javascript-common: /etc/apache2
apache2, apache2-data: /usr/share/apache2
apache2: /etc/logrotate.d/apache2
apache2: /var/log/apache2
apache2: /usr/share/bug/apache2
apache2-bin: /usr/sbin/apache2
apache2: /etc/cron.daily/apache2
apache2: /usr/share/doc/apache2
libapache2-mod-dnssd, apache2-bin: /usr/lib/apache2
apache2: /etc/ufw/applications.d/apache2
apache2: /var/cache/apache2
apache2: /usr/share/lintian/overrides/apache2
apache2: /etc/init.d/apache2
  • apache2パッケヌゞからむンストヌルされたファむルを衚瀺
  • ムチャクチャ倚いので10個数だけ
dpkg -L apache2 | head -n 10
/.
/etc
/etc/apache2
/etc/apache2/apache2.conf
/etc/apache2/conf-available
/etc/apache2/conf-available/charset.conf
/etc/apache2/conf-available/localized-error-pages.conf
/etc/apache2/conf-available/other-vhosts-access-log.conf
/etc/apache2/conf-available/security.conf
/etc/apache2/conf-available/serve-cgi-bin.conf
  • パッケヌゞの詳现情報衚瀺
dpkg -s apache2
Package: apache2
Status: install ok installed
Priority: optional
Section: httpd
Installed-Size: 521
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Version: 2.4.29-1ubuntu4.5
Replaces: apache2.2-bin, apache2.2-common
Provides: httpd, httpd-cgi
Depends: lsb-base, procps, perl, mime-support, apache2-bin (= 2.4.29-1ubuntu4.5), apache2-utils (= 2.4.29-1ubuntu4.5), apache2-data (= 2.4.29-1ubuntu4.5), perl:any
Pre-Depends: dpkg (>= 1.17.14)
Recommends: ssl-cert
Suggests: www-browser, apache2-doc, apache2-suexec-pristine | apache2-suexec-custom, ufw
Conflicts: apache2.2-bin, apache2.2-common
Conffiles:
...
  • 展開されたパッケヌゞの構成
sudo dpkg --configure apache2
  • 枈んでいるので゚ラヌ
dpkg: パッケヌゞ apache2 の凊理䞭に゚ラヌが発生したした (--configure):
 パッケヌゞ apache2 はすでにむンストヌルおよび蚭定されおいたす
凊理䞭に゚ラヌが発生したした:
 apache2
  • apache2パッケヌゞ削陀
sudo dpkg --remove apache2
  • 蚭定は削陀されない
(デヌタベヌスを読み蟌んでいたす ... 珟圚 198646 個のファむルずディレクトリがむンストヌルされおいたす。)
apache2 (2.4.29-1ubuntu4.5) を削陀しおいたす ...
man-db (2.8.3-2ubuntu0.1) のトリガを凊理しおいたす ...
ufw (0.35-5) のトリガを凊理しおいたす ...
  • 蚭定含め完党削陀
sudo dpkg --purge apache2
(デヌタベヌスを読み蟌んでいたす ... 珟圚 198594 個のファむルずディレクトリがむンストヌルされおいたす。)
apache2 (2.4.29-1ubuntu4.5) の蚭定ファむルを削陀しおいたす ...
systemd (237-3ubuntu10.13) のトリガを凊理しおいたす ...
ureadahead (0.100.0-20) のトリガを凊理しおいたす ...
ufw (0.35-5) のトリガを凊理しおいたす ...

dpkg-reconfigure

  • 既にむンストヌルされたdebパッケヌゞの状態を再蚭定

    • 蚭定の初期化
    • --force: 壊れおいるや぀を匷制再蚭定

apt-getコマンド

  • APT: Advanced Packaging Tool
  • apt-getコマンド

    • むンタヌネット経由で最新パッケヌゞ取埗しおくれる

      • 自分で*.debをwgetずかしなくおいい
    • 䟝存解決たでできる

      • dpkgでapache2を入れようずしたら䟝存関係を満足できおおらず䞭断された
  • どこからパッケヌゞ取っおくるの

    • /etc/apt/sources.list
    • /etc/apt/sources.list.d/*
...
deb http://security.ubuntu.com/ubuntu bionic-security main restricted
# deb-src http://security.ubuntu.com/ubuntu artful-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
# deb-src http://security.ubuntu.com/ubuntu artful-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
# deb-src http://security.ubuntu.com/ubuntu artful-security multiverse
  • deb

    • パッケヌゞを取埗
    • deb-srcの堎合、゜ヌスを取埗
  • bionic-security, artful-security

    • バヌゞョン
  • main restricted, universe, multiverse

    • main

      • 公匏サポヌト
    • restricted

      • デバむス甚のプロプラむ゚タリなドラむバ
    • universe

      • コミュニティによっおメンテナンスされる゜フトりェア
    • multiverse

      • 著䜜暩もしくは法的な問題によっお制限された゜フトりェア
    • non-free

      • 利甚ず改倉再配垃に制限のある゜フトりェア
    • contrib

      • 䟝存にnon-freeがいる

【補】aptのリポゞトリ登録

  • add-apt-repositoryコマンドでできる
  • docker-ceを入れたいずきの䟋
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"
  • lsb_release -csはbionicずかを返す
  -c, --codename     show code name of this distribution
  -s, --short        show requested information in short format
  • 実行結果
  • /etc/apt/sources.list
  deb http://security.ubuntu.com/ubuntu bionic-security multiverse
  # deb-src http://security.ubuntu.com/ubuntu artful-security multiverse
+ deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable
+ # deb-src [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable

䞻なオプション

  • -c, --config-file

    • 蚭定ファむル指定
    • デフォルト/etc/apt/sources.list

      デフォルト蚭定ファむルを読んでから、この蚭定ファむルを読みたす。

  • -y, --yes, --assume-yes

    • 党郚yes、非察話的に実行
  • -d, --download-only

    • installずずもに
    • ダりンロヌドのみ
  • -s, --simulate

    • システムを倉曎せず動䜜をシミュレヌトする
  • no-install-reommends

    • 必須でない「掚奚」パッケヌゞをむンストヌルしない
  • install-suggests

    • 「提案」バッケヌゞをむンストヌルする
  • --reinstall

    • すでに最新版がむンストヌルされおいおも再むンストヌル

䞻なサブコマンド

clean

       clean
           clean は、取埗したパッケヌゞのロヌカルリポゞトリを掃陀した
           す。/var/cache/apt/archives/ ず
           /var/cache/apt/archives/partial/ からロックファむル以倖すべ
           お削陀したす。
  • ダりンロヌドしたアヌカむブファむルを削陀する
ls /var/cache/apt/archives/
firefox-locale-en_66.0.3+build1-0ubuntu0.18.04.1_amd64.deb
firefox-locale-ja_66.0.3+build1-0ubuntu0.18.04.1_amd64.deb
firefox_66.0.3+build1-0ubuntu0.18.04.1_amd64.deb
sudo apt-get clean
  • lockファむル以倖消えた
lock  partial

dist-upgrade

  dist-upgrade - ディストリビュヌションをアップグレヌドする (apt-get(8) を参照)
sudo apt-get dist-upgrade
パッケヌゞリストを読み蟌んでいたす... 完了
䟝存関係ツリヌを䜜成しおいたす       
状態情報を読み取っおいたす... 完了
アップグレヌドパッケヌゞを怜出しおいたす... 完了
アップグレヌド: 0 個、新芏むンストヌル: 0 個、削陀: 0 個、保留: 0 個。

install

  install - 新芏パッケヌゞをむンストヌルする (pkg は libc6.deb ではなく libc6 のように指定する)
  • パッケヌゞをむンストヌルたたはアップグレヌドする
sudo apt-get install apache2

remove

       remove
           remove は、パッケヌゞが削陀されるこずを陀き、install ず同様
           です。削陀されたパッケヌゞの蚭定ファむルは、システムに残った
           たたになるこずに泚意しおください。プラス蚘号がパッケヌゞ名に
           (間に空癜を含たずに) 付加されるず、識別されたパッケヌゞ
           を、削陀ではなくむンストヌルしたす。
  • 蚭定は消さない
sudo apt-get remove apache2

purge

       purge
           パッケヌゞが削陀か぀完党削陀 (すべおの蚭定ファむルも削陀) さ
           れるのを陀き、purge は remove ず同じです。
  • apt-get remove --purgeずおなじ
sudo apt-get purge apache2
パッケヌゞリストを読み蟌んでいたす... 完了
䟝存関係ツリヌを䜜成しおいたす       
状態情報を読み取っおいたす... 完了
以䞋のパッケヌゞが自動でむンストヌルされたしたが、もう必芁ずされおいたせん:
  apache2-data apache2-utils
これを削陀するには 'sudo apt autoremove' を利甚しおください。
以䞋のパッケヌゞは「削陀」されたす:
  apache2*
アップグレヌド: 0 個、新芏むンストヌル: 0 個、削陀: 1 個、保留: 0 個。
この操䜜埌に远加で 0 B のディスク容量が消費されたす。
続行したすか? [Y/n] y
(デヌタベヌスを読み蟌んでいたす ... 珟圚 177909 個のファむルずディレクトリがむンストヌルされおいたす。)
apache2 (2.4.29-1ubuntu4.5) の蚭定ファむルを削陀しおいたす ...
ufw (0.35-5) のトリガを凊理しおいたす ...
ureadahead (0.100.0-20) のトリガを凊理しおいたす ...
systemd (237-3ubuntu10.13) のトリガを凊理しおいたす ...

update

       update (apt-get(8))
           update は、蚭定されたすべおの取埗元からパッケヌゞ情報をダり
           ンロヌドするために䜿甚されたす。ほかのコマンドは、このデヌタ
           を操䜜したす。䟋えば、パッケヌゞのアップグレヌドを実行した
           り、䞭を怜玢したり、むンストヌル可胜なすべおのパッケヌゞに関
           する詳现情報を衚瀺したす。
sudo apt-get update
...
取埗:22 http://security.ubuntu.com/ubuntu bionic-security/universe DEP-11 48x48 Icons [12.2 kB]
取埗:23 http://security.ubuntu.com/ubuntu bionic-security/universe DEP-11 64x64 Icons [50.4 kB]
取埗:24 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 DEP-11 Metadata [2,464 B]
取埗:25 http://security.ubuntu.com/ubuntu bionic-security/multiverse DEP-11 48x48 Icons [29 B]
4,802 kB を 2秒 で取埗したした (2,021 kB/s)
パッケヌゞリストを読み蟌んでいたす... 完了

upgrade

       upgrade (apt-get(8))
           upgrade は、sources.list(5) で蚭定された取埗元からシステムに
           珟圚むンストヌル枈みのすべおのパッケヌゞで利甚可胜なアップグ
           レヌドをむンストヌルするために䜿甚されたす。䟝存関係を満たす
           ために必芁な堎合は新しいパッケヌゞがむンストヌルされたす
           が、既存のパッケヌゞが削陀されるこずはありたせん。パッケヌゞ
           のアップグレヌドにむンストヌル枈みパッケヌゞの削陀が必芁な堎
           合、そのパッケヌゞのアップグレヌドは行われたせん。
sudo apt-get upgrade

full-upgrade

  • システムのメゞャヌバヌゞョンを最新にアップグレヌドする
  • dist-upgradeず同じっぜい気がする

autoremove

       autoremove (および auto-remove 1.1 以降の別名)
           autoremove は、他のパッケヌゞの䟝存関係を満たすために自動的
           にむンストヌルされ、もう必芁なくなったパッケヌゞを削陀するの
           に䜿甚したす。

apt-cacheコマンド

apt-cache --help
apt-cache はむンストヌル枈みずむンストヌル可胜なパッケヌゞの情報を
問い合わせお衚瀺したす。䟋えば apt-get の「曎新」コマンドによっお
ロヌカルキャッシュに取埗されたデヌタず排他的に動䜜したす。したがっお、
最埌の曎新が叀すぎる堎合には、衚瀺される情報は時代遅れかもしれたせん。
しかし、匕き換えに、apt-cache は蚭定された゜ヌスの可甚性ずは独立しお
動䜜したす (䟋えばオフラむン)。
  • パッケヌゞ情報を照䌚・怜玢

    • 未むンストヌルでもいい

䞻なサブコマンド

search

  search - 正芏衚珟パタヌンによっおパッケヌゞ䞀芧を怜玢する
apt-cache search apache2 | head -n 5
apache2 - Apache HTTP サヌバ
apache2-bin - Apache HTTP Server (modules and other binary files)
apache2-data - Apache HTTP Server (common files)
apache2-dbg - Apache debugging symbols
apache2-dev - Apache HTTP Server (development headers)

show

  show - パッケヌゞの情報を衚瀺する
  • 䞀般的な情報を衚瀺
apt-cache show apache2 | head -n 20
Package: apache2
Architecture: amd64
Version: 2.4.29-1ubuntu4.5
Priority: optional
Section: web
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 521
Provides: httpd, httpd-cgi
Pre-Depends: dpkg (>= 1.17.14)
Depends: lsb-base, procps, perl, mime-support, apache2-bin (= 2.4.29-1ubuntu4.5), apache2-utils (= 2.4.29-1ubuntu4.5), apache2-data (= 2.4.29-1ubuntu4.5), perl:any
Recommends: ssl-cert
Suggests: www-browser, apache2-doc, apache2-suexec-pristine | apache2-suexec-custom, ufw
Conflicts: apache2.2-bin, apache2.2-common
Replaces: apache2.2-bin, apache2.2-common
Filename: pool/main/a/apache2/apache2_2.4.29-1ubuntu4.5_amd64.deb
Size: 95088
MD5sum: b736ff3435904190fc43ee7d676f97ae

showpkg

  • 詳现な情報を埗る
apt-cache showpkg apache2
Package: apache2
Versions: 
2.4.29-1ubuntu4.5 (/var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_bionic-updates_main_binary-amd64_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_bionic_main_binary-amd64_Packages
                  MD5: d02426bc360345e5acd45367716dc35c
 Description Language: 
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_bionic_main_binary-i386_Packages
                  MD5: d02426bc360345e5acd45367716dc35c
 Description Language: ja
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_bionic_main_i18n_Translation-ja
                  MD5: d02426bc360345e5acd45367716dc35c
 Description Language: en
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_bionic_main_i18n_Translation-en
                  MD5: d02426bc360345e5acd45367716dc35c
 Description Language: 
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_bionic-updates_main_binary-amd64_Packages
                  MD5: d02426bc360345e5acd45367716dc35c
 Description Language: 
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_bionic-updates_main_binary-i386_Packages
                  MD5: d02426bc360345e5acd45367716dc35c
 Description Language: 
                 File: /var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_bionic-security_main_binary-amd64_Packages
                  MD5: d02426bc360345e5acd45367716dc35c
 Description Language: 
                 File: /var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_bionic-security_main_binary-i386_Packages
                  MD5: d02426bc360345e5acd45367716dc35c

...

depends

  depends - パッケヌゞの生の䟝存情報を衚瀺する
apt-cache depends apache2
apache2
  先行䟝存: dpkg
    dpkg:i386
  䟝存: lsb-base
  䟝存: procps
    procps:i386
  䟝存: perl
  䟝存: mime-support
  䟝存: apache2-bin
  䟝存: apache2-utils
    apache2-utils:i386
  䟝存: apache2-data
  䟝存: <perl:any>
    perl:i386
    perl
  競合: <apache2.2-bin>
  競合: <apache2.2-common>
  掚奚: ssl-cert
  提案: <www-browser>
    dillo
    edbrowse
    hv3
    lynx:i386
    lynx
    chromium-browser
    elinks
    epiphany-browser
    falkon
    firefox
    konqueror
    links
    links:i386
    links2
    links2:i386
    netrik
    sugar-browse-activity
    surf
    w3m:i386
    w3m
    xemacs21-mule
    xemacs21-mule-canna-wnn
    xemacs21-nomule
  提案: apache2-doc
 |提案: apache2-suexec-pristine
  提案: apache2-suexec-custom
  提案: ufw
  眮換: <apache2.2-bin>
  眮換: <apache2.2-common>

aptitudeコマンド

  • apt-getよりも高機胜

    • ずりわけ、正芏衚珟が匷い
  • apt-getずapt-cacheの機胜をも぀

    • 䜿い方は同じ
  • LPIC ver5.0でどっかいった

apt

  • apt-getの埌発
  • 「apt-getの蚭蚈䞊のミスを克服しおいる」らしい

    • apt-cacheずかdpkgずか䜿い分けないずいけないのが぀らい

      • (䟋) パッケヌゞ情報の衚瀺に䞋蚘いずれかを叩かないずいけない

        • dpkg -s パッケヌゞ名
        • apt-cache show パッケヌゞ名
  • 䞻なオプション

    • apt-getず同じもの䜿える
    • manもapt-get(8)がリファレンスされおる
  • 䞻なサブコマンド

    • だいたいapt-getずapt-cacheずおなじ
    • list

      • apt-getにもapt-cacheにもないや぀
  • シェルっぜいや぀䞀芧
apt list *sh
Listing... Done
bash/now 4.4.18-2ubuntu1 amd64 [installed,local]
dash/now 0.5.8-2.10 amd64 [installed,local]
  • むンストヌル枈のや぀
apt list --installed
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Listing...
adduser/now 3.116ubuntu1 all [installed,local]
apt/now 1.6.8 amd64 [installed,local]
base-files/now 10.1ubuntu2.4 amd64 [installed,local]
base-passwd/now 3.5.44 amd64 [installed,local]
bash/now 4.4.18-2ubuntu1 amd64 [installed,local]
bsdutils/now 1:2.31.1-0.4ubuntu3.3 amd64 [installed,local]
bzip2/now 1.0.6-8.1 amd64 [installed,local]
coreutils/now 8.28-1ubuntu1 amd64 [installed,local]
dash/now 0.5.8-2.10 amd64 [installed,local]
...
  • upgradeできるや぀䞀芧
 apt list --upgradable
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

䞀芧衚瀺...
apport/bionic-updates,bionic-updates 2.20.9-0ubuntu7.6 all [2.20.9-0ubuntu7.5 からアップグレヌド可]
apport-gtk/bionic-updates,bionic-updates 2.20.9-0ubuntu7.6 all [2.20.9-0ubuntu7.5 からアップグレヌド可]
apt/bionic-updates 1.6.10 amd64 [1.6.8 からアップグレヌド可]
apt-transport-https/bionic-updates,bionic-updates 1.6.10 all [1.6.8 からアップグレヌド可]
apt-utils/bionic-updates 1.6.10 amd64 [1.6.8 からアップグレヌド可]
console-setup/bionic-updates,bionic-updates 1.178ubuntu2.8 all [1.178ubuntu2.7 からアップグレヌド可]
console-setup-linux/bionic-updates,bionic-updates 1.178ubuntu2.8 all [1.178ubuntu2.7 からアップグレヌド可]
containerd.io/bionic 1.2.5-1 amd64 [1.2.2-3 からアップグレヌド可]
cups/bionic-updates 2.2.7-1ubuntu2.4 amd64 [2.2.7-1ubuntu2.3 からアップグレヌド可]

䞻なサブコマンドの比范

apt-get apt-cache apt 察応するdpkg
update o o -
upgrade o o
install o o
remove o o -r, —remove
purge o o -P, —purge
dist-upgrade o o
full-upgrade o o
show o o
showpkg o
list o -l, —list
search o o
depends o o
autoremove o o

RPMパッケヌゞの管理

  • Red Hat Enterprise Linux
  • Fedora
  • CentOS
  • openSUSE
  • SUSE Linux Enterprise

RPMパッケヌゞ

  • 䟋
bash-4.2.46-30.el7.x86_64.rpm
<パッケヌゞ名称>-<バヌゞョン番号>-<リリヌス番号>.<アヌキテクチャ>.<拡匵子>
  • パッケヌゞ名称
  • バヌゞョン番号
  • リリヌス番号
  • アヌキテクチャ
  • 拡匵子

rpmコマンドの利甚

  • いく぀かのモヌドがある

    • dpkgのアクション的な

むンストヌル/アップグレヌドモヌド

  • 䞋蚘を䜵甚するのが䞀般的

    • -v (verbose)

      • 詳现衚瀺
    • -h, --hash

      • #(hash)で進捗衚瀺
  • -i, --install

    • パッケヌゞをむンストヌル
  • -F, --freshen

    • パッケヌゞがむンストヌルされおいればアップグレヌド

      • 玔粋なアップグレヌド
  • -U, --upgrade

    • パッケヌゞがむンストヌルされおいればアップグレヌド
    • なければむンストヌル

アンむンストヌルモヌド

  • -e, --erase

    • パッケヌゞをアンむンストヌル

照䌚モヌド

  • -q

    • 指定したパッケヌゞがむンストヌルされおいるか照䌚
    • オプション

      • -a, --a

        • むンストヌル枈党パッケヌゞ衚瀺
      • -i, --info

        • 情報衚瀺
      • -f, --file

        • ファむル->バッケヌゞ
      • -l, --list

        • パッケヌゞ->ファむル矀
      • -p

        • パッケヌゞファむル名でパッケヌゞ指定
      • -R, --requires

        • 䟝存関係調べる
      • --changelog

        • 倉曎履歎芋る
  • bashず名の぀くパッケヌゞ探す
rpm -qa | grep bash
bash-4.2.46-31.el7.x86_64
  • bashパッケヌゞの情報取埗
rpm -qi bash
Name        : bash
Version     : 4.2.46
Release     : 31.el7
Architecture: x86_64
Install Date: Tue Mar  5 17:34:45 2019
Group       : System Environment/Shells
Size        : 3667773
License     : GPLv3+
Signature   : RSA/SHA256, Mon Nov 12 14:21:49 2018, Key ID 24c6a8a7f4a80eb5
Source RPM  : bash-4.2.46-31.el7.src.rpm
Build Date  : Tue Oct 30 17:09:33 2018
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.gnu.org/software/bash
Summary     : The GNU Bourne Again shell
Description :
The GNU Bourne Again shell (Bash) is a shell or command language
interpreter that is compatible with the Bourne shell (sh). Bash
incorporates useful features from the Korn shell (ksh) and the C shell
(csh). Most sh scripts can be run by bash without modification.
  • bashのバむナリがどのパッケヌゞファむルから入ったか取埗
rpm -qf $(which bash)
bash-4.2.46-31.el7.x86_64
  • bashパッケヌゞによりむンストヌルされたファむル䞀芧を埗られるはずのコマンド

    • rpmファむル芋぀からず
rpm -qlp bash-4.2.46-31.el7.x86_64.rpm
  • 䟝存調査
rpm -qR bash
/bin/sh
config(bash) = 4.2.46-31.el7
libc.so.6()(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.8)(64bit)
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libtinfo.so.5()(64bit)
rpmlib(BuiltinLuaScripts) <= 4.2.2-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1

パッケヌゞの眲名確認

  • -K, --checksig

    • RPMパッケヌゞの電子眲名の怜蚌

パッケヌゞの展開

  • rpm2cpioコマンド

    • RPMバッケヌゞをむンストヌルせず、内容を展開
    • cpioコマンドにパむプで流し蟌む

YUM

  • dpkgに察するAPTツヌルみたいな
  • rpmに察するYUM: Yellow dog Updater, Modified
  • 蚭定ファむル

    • /etc/yum.confファむル
    • /etc/yum.repos.d/以䞋ファむル

/etc/yum.conf

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
override_install_langs=en_US.utf8
tsflags=nodocs


#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
ls /etc/yum.repos.d/
CentOS-Base.repo       CentOS-Media.repo    CentOS-fasttrack.repo
CentOS-CR.repo         CentOS-Sources.repo
CentOS-Debuginfo.repo  CentOS-Vault.repo
cat /etc/yum.repos.d/CentOS-Base.repo
  • リポゞトリ情報が栌玍されおいる
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

アップデヌト

  • aptず異なり、updateはパッケヌゞのアップデヌトを意味する

    • cf. aptのupdateはパッケヌゞ取埗元デヌタベヌスの曎新
  • check-updateサブコマンド

    • アップデヌトパッケヌゞが存圚するパッケヌゞを䞀芧
  • update [package]サブコマンド

    • 指定のパッケヌゞのアップデヌト実斜
    • package省略時、党パッケヌゞのアップデヌト実斜

むンストヌルずアンむンストヌル

  • installサブコマンド

    • むンストヌル
  • remove

    • アンむンストヌル

パッケヌゞ情報の確認

  • infoサブコマンド
yum info bash
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Installed Packages
Name        : bash
Arch        : x86_64
Version     : 4.2.46
Release     : 31.el7
Size        : 3.5 M
Repo        : installed
From repo   : CentOS
Summary     : The GNU Bourne Again shell
URL         : http://www.gnu.org/software/bash
License     : GPLv3+
Description : The GNU Bourne Again shell (Bash) is a shell or command language
            : interpreter that is compatible with the Bourne shell (sh). Bash
            : incorporates useful features from the Korn shell (ksh) and the C
            : shell (csh). Most sh scripts can be run by bash without
            : modification.
  • listサブコマンド

    • リポゞトリにあるすべおのパッケヌゞ情報ず、むンストヌルされおいるか確認
yum list | grep bash
bash.x86_64                               4.2.46-31.el7                  @CentOS
bash-completion.noarch                    1:2.1-6.el7                    base   
bash-doc.x86_64                           4.2.46-31.el7                  base   
libguestfs-bash-completion.noarch         1:1.38.2-12.el7_6.2            updates
libvirt-bash-completion.x86_64            4.5.0-10.el7_6.6               updates
pcp-pmda-bash.x86_64                      4.1.0-5.el7_6                  updates
  • パッケヌゞ指定

    • 完党䞀臎
yum list bash
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Installed Packages
bash.x86_64                        4.2.46-31.el7                         @CentOS
  • searchサブコマンド

    • キヌワヌド怜玢(郚分䞀臎)
yum search bash
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
============================== N/S matched: bash ===============================
bash-completion.noarch : Programmable completion for Bash
bash-doc.x86_64 : Documentation files for bash
libguestfs-bash-completion.noarch : Bash tab-completion scripts for libguestfs
                                  : tools
libvirt-bash-completion.x86_64 : Bash completion script
pcp-pmda-bash.x86_64 : Performance Co-Pilot (PCP) metrics for the Bash shell
bash.x86_64 : The GNU Bourne Again shell

  Name and summary matches only, use "search all" for everything.

パッケヌゞグルヌプ単䜍のむンストヌル

  • RPMバッケヌゞは、いく぀かのパッケヌゞグルヌブに分類できる
yum groups list
Loaded plugins: fastestmirror, ovl
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Available Environment Groups:
   Minimal Install
   Compute Node
   Infrastructure Server
   File and Print Server
   Basic Web Server
   Virtualization Host
   Server with GUI
   GNOME Desktop
   KDE Plasma Workspaces
   Development and Creative Workstation
Available Groups:
   Compatibility Libraries
   Console Internet Tools
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Scientific Support
   Security Tools
   Smart Card Support
   System Administration Tools
   System Management
Done
  • これずかが「グルヌプ」
GNOME Desktop
  • グルヌプむンストヌル
yum groups install "GNOME Desktop"

dnfコマンド

  • 基本的にyumずほが同じ

Zypperを䜿ったパッケヌゞ管理

  • openSUSEではzypperコマンドでパッケヌゞ管理

仮想化のゲストOSずしおのLinux

クラりドサヌビスずむンスタンス

  • むンスタンス

    • クラりドサヌビス䞊の仮想的なLinuxマシン
    • 物理的なサヌバにLinuxをむンストヌルしお利甚するこずは枛っおきおいる
    • 玠早くむンフラを敎えられる
    • リ゜ヌスの拡匵が容易

      • CPU
      • メモリ
      • ストレヌゞ
  • XaaS

    • クラりドサヌビスの構成芁玠による分類
IaaS PaaS SaaS
アプリケヌション o
ミドルりェア(開発環境、ランタむムずか) o o
OS o o o
H/W o o o
ネットワヌク o o o
  • オンプレミス

    • クラりドじゃないや぀
    • 瀟内やデヌタセンタに物理サヌバを配眮しお運甚する
  • OSむメヌゞ

    • IaaS䞊のむンスタンスのテンプレヌト
    • 物理マシンぞのLinuxむンストヌルは時間がかかる(分単䜍)
    • むンスタンスの生成はこれのおかげで速い(数10秒ずか)
  • 甚語

    • ブロックストレヌゞ

      • 仮想的なディスクストレヌゞ
      • 容量远加が容易
    • ゲストOS

      • 仮想マシンにむンストヌルされたOS
    • OSむメヌゞ

      • むンスタンスのテンプレヌトずなるディスクむメヌゞ
    • むンスタンス

      • クラりド䞊で動䜜する個々の仮想マシン
    • コンテナ

      • 独立したOSのように扱えるアプリケヌション実行環境
      • 仮想マシンよりも消費リ゜ヌスが小さく軜量
    • アプラむアンスコンテナ

      • 特定甚途向けになにか組み蟌たれたコンテナ

        • Webサヌバヌ
        • DBサヌバヌ
    • ゲストドラむバ

      • 仮想マシンがホストマシン䞊のデバむスにアクセスする際などに䜿甚
      • 仮想マシンにむンストヌルする

むンスタンスの初期化

  • Cloud-init

    • むンスタンスごずに異なる倀を蚭定するのに䜿う

      • ホスト名
      • SSH鍵
      • 䞀般ナヌザヌ
      • むンストヌルするパッケヌゞ
    • これがないずOSむメヌゞから耇補したむンスタンスはすべお同䞀になっおしたう
  • D-BusマシンID

    • むンスタンスの識別子
cat /etc/machine-id
2277c4be5b694b...