Linux コマンド使ってますか?

使ってみると案外便利ですよ!

ということで今回は Linux をコマンドで操作してみます。

はじめに。

中古パソコンも当たり前に流通している中、Windows 11 のシステム要件の厳しさも手伝って、Windows の代わりとして Linux を使う人も少しずつ増えて来たようにも感じています。

※あくまでも個人的な感想です。

んで、Linux という名前を知っている人の中には「Linux といえばコマンド操作だろうから自分にはハードルが高いなぁ…」なんて思う人もいることでしょう。

確かにコマンド操作ってなんか難しそうですよね。

それに、今の Linux では以前よりも GUI 操作だけでできることがだいぶ増えたため、コマンドを覚えなくても使えるようになりました。

なので、 Linux といってもそこまで身構える必要がなくなりました。

Linux とは言え、コマンドを使う機会も減ったかも知れませんね。

でも不思議なもので、Linux を使っていくと徐々に GUI 操作よりもコマンド操作をするようになります

「俺コマンド使ってるぜ!」みたいな自己満足も少なからずあるかもしれませんが、それ以上に「とにかく軽い!速い!」というのが理由でしょう。

ちょっとここらへんを語らせていただくと、Windows や macOS 、Linux も含めた GUI 環境は「デスクトップメターファー」という概念のもとに設計されたイメージの世界です。

もうちょっと詳しく言うと、GUI 環境は OS の中での処理や操作を、人がより視覚的に認識しやすいよう、その言葉通り「机(デスクトップ)」や「ファイル」、「キャビネット」などを「メタファー(隠喩)」、つまり「わかりやすい例えの表現」として作られた環境です。

そのため、画像やアニメーションを含め、それらの処理を OS がさまざまな命令を使ってコンピュータに処理させるため、コンピュータはたくさんの仕事をしなければいけなくなります。

コマンド操作においても厳密に言えば、操作するコマンドを OS がコンピュータに理解る言葉に通訳して処理するという作業が行われていますが、GUI 環境のそれよりもコンピュータに掛かる負担が少ないのはイメージできることでしょう。

ということで、より軽快な操作をするのであれば、コマンドが使える事に越したことはありません。

またコマンドを覚えることで、いちいちマウスやタッチパッドに手を伸ばして操作する機会も減ります。

意外とこれ、作業効率アップに効くんですよね。

さらに言えばコマンドで操作していると、よりプロっぽくも見えるのでスタバでドヤれることでしょう。

※あくまでも個人的な感想です。

ということで、今回は Linux コマンドを使ってみましょう!

よく使うコマンドは?

Linux でよく使うコマンド=パッケージ管理コマンド。

コダシマがいちばん最初に紹介するコマンドは、Linux でおそらく最もよく使うであろうパッケージ管理に関するコマンドです。

Linux 入門の書籍や Web 上の情報を見ると「よく使うコマンド」がたくさん紹介されています。

およそ30種類くらいのコマンドを覚えていると、だいたいの操作はコマンドだけでできるようになるかと思いますが、ぶっちゃけディレクトリがどうのとか、ファイルのコピーがどうのとか後回しでも覚えられると思います。

それよりも、ワクワクするコマンドを覚えたほうが、なぜディレクトリ操作のコマンドが必要なのか、なぜファイルのコピーが必要なのかがわかってくると感じます。

ということで、今回紹介するコマンドは「APT」コマンドです!

https://manpages.debian.org/unstable/apt/apt.8.ja.html

APT コマンドとは?

APT は Advanced Packaging Tool の頭文字を取った名前のコマンドで、ソフトウェアのインストールや削除などの管理を簡単に行えるようにするコマンドです。

とても優秀なコマンドで、コンパイル済みのソフトウェアを管理する機能はもちろん、ソースコードからソフトウェアをコンパイルする際の依存関係を解決する機能も備えています。

ちなみに Synaptic という GUI 操作できるパッケージ管理ソフトがあるのですが、これはapt コマンドの GUI フロントエンドです。

で、この apt コマンドは、もともと存在していた apt-get コマンドや apt-cache (キャッシュ) コマンドなどのいいとこ取りみたいなコマンドです。

ただし、注意があります。

この apt コマンドは、もともと Debian というディストリビューション用に開発されたパッケージ管理システムである dpkg というパッケージ管理システムを基礎として、より複雑なパッケージ間の依存関係を扱うためのフロントエンドとして開発されました。

コンピューターのプログラムって、何千行・何万行という膨大な命令文によって作られているため、流用できるものは流用しましょうって感じになっています。

そのため、インストールしたいパッケージ単体では動かないものが多いです。

ざっくり言えば、そのインストールしたいパッケージを動かすために必要な他のプログラムとかのことを依存関係とか呼びます。

apt は、ソフトウェアのそこら辺りをちゃんと動くように解決してくれる、とても働き者のコマンドです。

ってことで、基本的には Debian からの派生 Linux でしか使うことができません。

※フロントエンド:ソフトウェアやシステムの場合、そのソフトウェアやシステムの利用者に対する表示や操作の受付、他のシステムとの入出力などといった外部と直接やり取りを行う要素のこと。

例:フロントエンド=銀行の窓口の人、バックエンド=銀行で会計処理とかしたりしてる人

ですが、現在では REHL や Fedora と言ったディストリビューションで使われている RPM 形式のパッケージにも対応するよう移植された apt-rpm もあります。

せっかくなのでパッケージ管理システムについてちょっと補足すると、他にも

  • Red Hat 系 (RHEL, AlmaLinux, Fedora など) … dnf, yum
  • Arch Linux 系 (Arch Linux, Manjaro, EndeavourOS など) … pacman
  • openSUSE 系 (openSUSE, GeckoLinux など) … zypper

などがあります。

他にもありますが、まずは目立つところはこんな感じです。

実践!APT コマンド。

では実際に apt コマンドを使ってみましょう。

apt コマンドは場合によって root 権限が必要なコマンドなので、$ su コマンドにて root に切り替えるか、sudo コマンドを付けて実行する必要があります。

今回は管理権限が必要な場合には sudo を付加したカタチで紹介していきます。

それではいってみましょう!

パッケージリストの更新

$ sudo apt update

コダシマが Linux をインストールしたマシンを起動した際や、新しくディストリビューションをインストールした際に、まずいちばん最初に使うコマンドです。

このコマンドでは利用できるパッケージリストを更新します。

※ちなみに、このコマンドを実行すると /var/lib/apt 以下の情報が更新されます。

パッケージのアップグレード

インストール済みのパッケージを、パッケージリストに照らし合わせ最新版にアップグレードします。

$ sudo apt upgrade

また、システムの都合で保留されているパッケージも合わせて更新する際には以下のように指定することで、すべてのパッケージを更新することができます。

$ sudo apt full-upgrade

ちなみに、以下のように指定すると、パッケージリストの更新とアップグレードを同時に行うことができます。

$ sudo apt update && sudo apt upgrade

アップグレードの際には、アップグレードしてもよいか確認されるので、問題がなければそこで「y」を入力する必要がありますが、以下のように「-y」オプションを追加すると、質問には自動的に「Yes」を返し、アップグレードを行います。

$ sudo apt update && sudo apt upgrade -y

パッケージの検索

インストールしたいパッケージを探す場合には以下の通りに実行します。

パッケージ名完全一致

$ apt list {パッケージ名}

パッケージ名一部一致

$ apt search {パッケージ名}

パッケージの詳細情報を表示

インストールする前でもパッケージのバージョン番号やダウンロードサイズ、ソースリポジトリなどの詳細情報を確認することができます。

$ apt show {パッケージ名}

パッケージのインストール

インストールしたいパッケージを見つけたら、早速インストールしましょう。

$ sudo apt install {パッケージ名}

リポジトリ以外の Web から手に入れた deb 形式のパッケージもインストールできます。

$ sudo apt install {deb ファイルのパス}

パッケージの削除

パッケージの削除についてはいくつかあります。

パッケージの設定ファイルを残して削除する場合。

$ sudo apt remove {パッケージ名}

パッケージの設定ファイルも全て削除(完全削除)する場合。

$ sudo apt purge {パッケージ名}

更新に伴って依存されなくなったパッケージを削除する場合。

$ sudo apt autoremove

※apt コマンド実行の際に、このコマンドを実行するよう表示されたら実行。

インストール済みのパッケージ一覧を表示

インストールされているパッケージの概要を一覧で表示します。

$ apt list --installed

この他にもまだ使い方はありますが、よく使うのはこのへんではないでしょうか。

もっと詳しい使い方については、ぜひ調べてみてください!

https://tracker.debian.org/pkg/apt
https://manpages.debian.org/unstable/apt/apt.8.ja.html

ソースパッケージのダウンロードとインストール

まずは環境を整えておきましょう。

これは最初だけ実行すればよいです。

開発するための環境が整えば、あとはその環境を使用してゆけばよいです。

deb パッケージ構築に最低限必要なパッケージをインストールする。

$ sudo apt install build-essential

基礎開発パッケージのインストールです。

これにより「gcc」や「make」といったツール郡がインストールされます。

Debian 固有のパッケージ作成ツール群をインストールする。

$ sudo apt install devscripts

「debuild」コマンドなどはこのパッケージのなかに含まれます。

ソースパッケージのダウンロードをする。

$ sudo apt source {パッケージ名}

ソースパッケージをコンパイルするために必要なパッケージのインストールをする場合。

$ sudo apt build-dep {パッケージ名}

コンパイルに必要なパッケージがインストールできたら、コンパイルが必要になります。

準備が整ったらコンパイルしてみましょう!

コンパイルの手順。

まずはダウンロードしたソースコードのディレクトリに移動する。

$ cd {パッケージのディレクトリ}

次のコマンドで deb ソースパッケージをビルドする。

$ debuild -uc -us -b

オプションの意味

  • -uc … 「.buildinfo」ファイルと「.changes」ファイルに署名をしない (unsigned changes)
  • -us … ソースパッケージに署名をしない (unsigned source)
  • -b … Binary ビルドか、build = any, all と等価

ビルドが終わったら deb バイナリパッケージ以外の不要になったパッケージを削除。

$ fakeroot debian/rules clean
https://www.debian.org/doc/manuals/maint-guide/build.ja.html

コンパイルが終わったら、パッケージがビルドされたか確認してみてくださいね。

今回のまとめ。

今回は Debian 系の Linux で、コマンドを使ったパッケージ管理をやってみました。

最近の Linux では GUI のソフトウェアセンターもありますが、やっぱりコマンドで操作するほうが速いので、徐々にコマンドで操作するようになってくるかと思います。

というか、パソコンを起動させたら、まずターミナルを立ち上げて

$ sudo apt update && sudo apt upgrade -y

をしなければ気が済まない体になるはずです。

それくらい、このコマンドはよく使います。

https://manpages.debian.org/unstable/apt/apt.8.ja.html

この記事の評価が高ければ、dnf とか pacman とかもやってみようかと思いますので、ぜひ今回の感想などをコメントにお願いします!