【Ubuntu講座第2回】さよならyum/dnf!パッケージ管理「APT」と「sudo」の流儀を完全マスター

Linux

【Ubuntu講座第2回】郷に入っては郷に従え。Debian系の「作法」を学ぶ

世界シェアNo.1のLinux OS「Ubuntu(ウブントゥ)」をマスターする短期集中連載、第2回です。

前回は、RHEL系(CentOS/AlmaLinux)とUbuntuの違い、そしてVPSでの環境構築までを行いました。
今回は、いよいよUbuntuの中身に深く切り込んでいきます。

テーマは、Linuxを使う上で最も頻繁に行う作業である「ソフトウェアのインストール(パッケージ管理)」です。

「えっ? dnfapt に変えるだけでしょ?」
そう思ったあなた。甘いです。
UbuntuにはUbuntu特有の「リポジトリの考え方」や「管理者権限の哲学」、そして最近主流になりつつある新機能「Snap」など、独自の文化が色濃く反映されています。

これらを理解せずに、RHEL系の感覚のままコマンドを打っていると、いずれ「依存関係の地獄」や「システム破壊」という大事故を引き起こします。
今回は、プロのインフラエンジニアとして恥ずかしくない、「正しいUbuntuの扱い方」を徹底的に解説します。

コウ君

先生!前回の宿題の apt updateapt upgrade は完璧です!
でも、ネットでUbuntuの記事を検索していると、たまに apt-get って書いてある記事があるんですけど、これって何が違うんですか?
どっちを使えばいいのか迷っちゃって…。

リナックス先生

いい質問ね!それは多くの初心者が最初に抱く疑問よ。
結論から言うと、今は「apt」を使うのが正解
apt-get は古いコマンドで、それを人間が使いやすく改良したのが apt なの。
今日はその歴史的経緯も含めて、Debian系の魂であるパッケージ管理システムを深掘りしていくわよ。

本講座のカリキュラム(全3回)

現在地は第2回です。

  1. Ubuntu入門編:RHEL系との決定的な違い、ライセンス、そしてVPSでの構築
  2. 【今回】基本操作編:さよならyum/dnf!「APT」コマンドとUbuntu流の流儀をマスターする
  3. 実践活用編:Webサーバー(Nginx)の構築と、Docker/AI開発への応用

APT(Advanced Package Tool)の基礎知識

Ubuntu(およびDebian)では、ソフトウェアの導入や削除に APT というシステムを使います。
これは、RHEL系で言うところの dnf (yum) に相当するものです。

apt vs apt-get の違い

コウ君が疑問に思った通り、ネット上の古い記事にはよく apt-get が登場します。
両者の関係は以下の通りです。

コマンド 特徴 推奨シーン
apt-get 古くからあるコマンド。
機能は豊富だが、オプションが複雑で出力が見にくい。
シェルスクリプトなど、
機械的に処理させる場合。
apt 新しいコマンド(Ubuntu 16.04以降で標準)。
apt-get の主要機能に加えて、進捗バーの表示など
人間が見やすい工夫がされている。
普段のサーバー操作全般。

現代のUbuntuユーザーであれば、基本的に apt だけ覚えておけば困ることはありません。
apt-get はレガシー(遺産)」と覚えておきましょう。

dpkgとの関係

もう一つ、知っておくべき重要なコマンドがあります。それが dpkg です。
RHEL系で言う rpm コマンドに相当します。

  • APT (apt): インターネット上の倉庫(リポジトリ)からソフトを探し、依存関係(Aを入れるにはBも必要、など)を自動解決してダウンロードしてくれる「賢い執事」。
  • dpkg: 手元にあるインストーラーファイル(.debファイル)を、依存関係などは気にせず無理やりインストールする「現場作業員」。

基本は apt を使いますが、ネット上にない特殊なソフト(例:Google ChromeのLinux版など)を入れる時だけ、公式サイトから .deb ファイルをダウンロードして dpkg で入れる、という使い分けをします。

実践:APTコマンド完全攻略

それでは、VPSにSSH接続して、実際にコマンドを叩いてみましょう。
RHEL系の dnf と比較しながら覚えるとスムーズです。

1. リスト更新とアップグレード(update / upgrade)

ここがUbuntu初心者が最も勘違いしやすいポイントです。
RHEL系では dnf update だけで全てが終わりましたが、Ubuntuでは2段階の手順が必要です。

# 手順1:カタログの更新
apt update

# 手順2:実際のインストール
apt upgrade

なぜ分かれているの?

  • apt update: サーバー内の「ソフト一覧表(カタログ)」を最新にするだけです。ソフト本体は更新されません。
    「Amazonで商品ページをリロードして、最新の価格を確認する」ようなイメージです。
  • apt upgrade: 更新されたカタログを元に、古いソフトを新しいソフトに置き換えます。
    「カートに入れた商品を実際に購入して届けてもらう」イメージです。

Ubuntuでは、何かソフトをインストールする前には、必ず apt update を実行する癖をつけてください。
これを忘れると、「そんなソフトは見つかりません(404 Not Found)」と怒られたり、古いバージョンのままインストールされたりします。

2. ソフトのインストール(install)

今回は練習として、ターミナルにシステム情報をかっこよく表示するツール neofetch をインストールしてみましょう。

apt install neofetch -y

インストールが終わったら、コマンドを実行してみてください。

neofetch

画面にアスキーアートでUbuntuのロゴが表示されれば成功です!
(こういう「映える」画面が出ると、サーバー構築してる感が湧きますよね)

3. ソフトの検索(search)

「nginxって名前のパッケージ、正確にはなんて言うんだっけ?」という時に使います。

apt search nginx

大量のリストが出てくるので、ここから必要なものを探します。

4. ソフトの削除(remove / purge)

ここもUbuntu特有の文化です。削除コマンドが2種類あります。

コマンド 動作 用途
apt remove [ソフト名] ソフト本体だけを削除する。
設定ファイルは残る。
一時的に消したい時。
後で再インストールする可能性がある時。
apt purge [ソフト名] ソフト本体と、設定ファイルも全て削除する。
(完全削除)
設定をミスして最初からやり直したい時。
二度と使わない時。

初心者のうちは、「設定ファイルをいじりすぎて動かなくなったから再インストールしたい!」という場面がよくあります。
その時、remove して install しても、設定ファイルが残っているためエラーが直らない…という泥沼にハマります。
「設定ごと消してやり直したい時は purge(パージ)」。これはテストに出るレベルで重要です。

5. ゴミ掃除(autoremove)

Ubuntuを使っていると、たまに「以下のパッケージはもう必要ありません」というメッセージが出ることがあります。
これは、依存関係で一緒に入れたけれど、親元のソフトを消したから不要になった「迷子のライブラリ」たちです。

以下のコマンドで一括削除して、ディスク容量を節約しましょう。

apt autoremove -y

「sudo」の文化とrootユーザー

コウ君

先生、VPSのマニュアルを見たら「Ubuntuではrootログインを推奨しません」って書いてありました。
AlmaLinuxの時はずっとrootで作業してましたけど、何が違うんですか?

リナックス先生

Ubuntuは「普段は一般市民、必要な時だけ王様の権限を借りる」というスタイルを徹底しているの。
それが sudo(スードゥ:SuperUser DO) よ。
常に王様(root)として振る舞うのは、操作ミスですべてを吹き飛ばすリスクがあるから危険なのよ。

Ubuntu流の運用ルール

多くのVPSでは、初期設定では root でログインできるようになっていますが、Ubuntuの作法としては、すぐに一般ユーザーを作成し、そこから sudo を使って管理作業を行うのが正解です。

例えば、一般ユーザー(kou)でログインしている状態で、apt update を実行しようとすると「権限がありません(Permission denied)」と怒られます。
そこで、コマンドの頭に sudo をつけます。

sudo apt update

すると、「あなたのパスワードを教えて」と聞かれます。
入力して認証されれば、そのコマンドだけが管理者権限で実行されます。

sudoのメリット:

  • 事故防止: うっかり rm -rf / などの危険なコマンドを打っても、sudoをつけていなければ実行されません。
  • ログが残る: 「いつ、誰が、どんな管理者コマンドを実行したか」がログに残るため、チーム開発での犯人探し…いえ、原因究明に役立ちます。

Ubuntuを使うなら、横着せずに sudo を打つ習慣をつけましょう。

Ubuntuのリポジトリ構造(Main, Universe…)

Ubuntuには、ソフトウェアの信頼度やライセンスによって、4つの倉庫(リポジトリ)が用意されています。

名前 内容 サポート
Main Canonical社が公式にサポートするフリーソフト。
(Apache, Pythonなど主要なもの)
あり(公式)
Restricted デバイスドライバなど、プロプライエタリ(非公開)なソフト。 あり(公式)
Universe コミュニティによってメンテナンスされるフリーソフト。
(膨大な数のソフトがある)
なし(コミュニティ)
Multiverse 著作権や法的制限があるかもしれないソフト。
(特定のコーデックなど)
なし

初期状態ではMainなどは有効になっていますが、マニアックなツールを入れようとすると「Universeリポジトリを有効にしてください」と言われることがあります。
その場合は以下のコマンドで有効化します。

sudo add-apt-repository universe
sudo apt update

新世代のパッケージ管理「Snap(スナップ)」とは?

最近のUbuntuでは、APTとは別に snap というコマンドが使えるようになっています。
これはCanonical社が強力に推進している、新しいパッケージ管理システムです。

APTとの違い

  • APT: OSのバージョンに依存する。古いUbuntuだと、新しいソフトが入らないことがある。
  • Snap: 必要なライブラリを全てパッケージの中に内包している(コンテナに近い)。OSのバージョンに関係なく、常に最新版が動く。

例えば、最新のDiscordやSpotify、開発ツールのVS CodeなどをUbuntuに入れる場合は、APTよりもSnapを使うのが一般的です。

# 例:Hello Worldを表示するだけのテスト用snapを入れる
sudo snap install hello-world

サーバー用途ではまだAPTが主流ですが、「最新のツールを入れたいのにAPTにない!」という時は、Snapストアを探してみると良いでしょう。

現場で必ず遭遇するトラブルと対処法

最後に、Ubuntuを使っていると必ず出くわすエラーとその対処法を伝授します。

「Could not get lock /var/lib/dpkg/lock」エラー

apt install をしようとしたら、こんな赤いエラーが出ることがあります。
これは「今、裏側で自動アップデートが動いているから、ちょっと待って!」という意味です。

Ubuntuは親切なので、起動直後などにバックグラウンドで勝手に更新チェックを行っています。
このロックがかかっている時に無理やりコマンドを打っても弾かれます。

対処法:
1. 素直に数分待つ(推奨)。
2. どうしても急ぐなら、再起動する。
3. 最悪の場合、ロックファイルを削除する(非推奨。システムが壊れる可能性あり)。

「Ubuntuは生きている」と思って、優しく待ってあげるのがコツです。

次回予告:NginxとDockerでWebサーバー構築

今回は、Ubuntuのパッケージ管理について、歴史的背景から最新のSnapまで深く学びました。
apt updateapt upgrade の違い、説明できるようになりましたか?

次回は最終回。
学んだAPTコマンドを駆使して、現在Webサーバー界でApacheを猛追する「Nginx(エンジンエックス)」を構築します。
さらに、モダンな開発現場では欠かせない「Docker(ドッカー)」の導入にもチャレンジします。

Ubuntu × Nginx × Docker。
この組み合わせこそが、現代のWebエンジニアの「三種の神器」です。
次回で一気にレベルアップしますよ!

リナックス先生

今回の内容は地味だけど、これを理解していないと現場で「あいつ、apt-get使ってるよ(笑)」って笑われちゃうの。
しっかり復習して、スマートなUbuntu使いになりなさい!

▼Ubuntuの学習に最適なVPS(この講座の推奨環境)

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

コメント