投稿者: akuroiwa

  • パッケージ管理

    Debian/Ubuntuのパッケージ管理

    Debian系ディストリビューション(DebianとUbuntu)では、主に以下のパッケージ管理ツールが使用されています。

    パッケージのインストールにはroot権限が必要です。以前の記事でも触れましたが、Debianの初期設定ではsu -lでrootユーザーとして実行します。以下はUbuntuでの例です。

    APT (Advanced Package Tool)

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

    sudo apt install パッケージ名

    パッケージの削除。後者はホームディレクトリ下を除く設定ファイル等も削除する:

    sudo apt remove パッケージ名
    sudo apt purge パッケージ名

    パッケージリストの更新。インストール前やアップグレード前に行う:

    sudo apt update

    システム全体のアップグレード:

    sudo apt upgrade

    パッケージの削除を伴うシステム全体のアップグレード:

    sudo apt full-upgrade

    パッケージの検索:

    apt search 正規表現

    パッケージの情報取得:

    apt show パッケージ名

    dpkg

    低レベルのパッケージ管理ツールです。

    .debファイルのインストール:

    sudo dpkg -i パッケージ名.deb

    インストールされたパッケージの一覧表示:

    dpkg -l

    パッケージ名に含まれるファイル一覧:

    dpkg -L パッケージ名
    dpkg --listfiles パッケージ名

    ファイルがどのパッケージに含まれるか検索:

    dpkg -S filename-search-pattern
    dpkg --search filename-search-pattern

    Snap

    Ubuntuで導入されたパッケージ管理システムです。coreで始まるものはbase snapで、各パッケージを動かすのに必要です。その番号はUbuntuリリースのバージョンを表します。

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

    sudo snap install パッケージ名

    インストールされたSnapの一覧表示:

    snap list

    Snapパッケージの更新:

    sudo snap refresh パッケージ名

    GUIツール

    1. App Center(Ubuntu):
      Show Appsから「アプリセンター」を開き、検索、インストール、削除が可能です。
    2. Synaptic Package Manager:
      より詳細な操作が可能なGUIツールです。
    sudo apt install synaptic

    でインストールできます。

    Fedoraのパッケージ管理

    Fedoraでは、主にDNF (Dandified Yum) を使用します。

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

    sudo dnf install パッケージ名

    パッケージの削除。eraseというエイリアスは廃止された1:

    sudo dnf remove パッケージ名

    パッケージリストの更新:

    sudo dnf check-update

    システム全体のアップグレード:

    sudo dnf upgrade

    RPM (Red Hat Package Manager)

    低レベルのパッケージ管理ツールです。

    .rpmファイルのインストール:

    sudo rpm -i パッケージ名.rpm

    インストールされたパッケージの一覧表示:

    rpm -qa

    GUIツール

    Debian、FedoraなどのGNOMEを採用しているLinuxディストリビューションでは、GNOME Softwareがデフォルトのグラフィカルパッケージマネージャーとして使用されています。GNOME Softwareは、ソフトウェアのインストール、更新、削除を簡単に行えるGUIツールです。

    Ubuntuに関しては、以前はUbuntu Softwareが使用されていましたが、最新のバージョンではApp Center(アプリセンター)に変更されています。英語版では「App Center」、日本語版では「アプリセンター」と表示されます。

    Ubuntuでアプリセンターを開くには、以下の手順を行います:

    1. 画面左下のShow Apps(アプリケーションを表示)ボタンをクリックします。
    2. 検索バーに「アプリセンター」または「App Center」と入力します。
    3. 表示されたアイコンをクリックしてアプリセンターを起動します。

    アプリセンターでは、ソフトウェアの検索、インストール、更新、削除などの操作を簡単に行うことができます。

    まとめ

    これらのツールを使用することで、Debian、Ubuntu、およびFedoraでのパッケージ管理を効率的に行うことができます。GUIツールは初心者にとって使いやすい一方、コマンドラインツールはより詳細な制御と自動化が可能です。

    1. dnf(8) — Linux manual page ↩︎
  • プロセス管理

    pgrepとは

    プロセス名やその他の属性に基づいてプロセスを検索するコマンドラインツールです。

    pgrep -u root sshd # rootユーザーが実行しているsshdプロセスを検索

    pkillとは

    pkill -u username  # 特定ユーザーの全プロセスを終了
    pkill firefox      # プロセス名がパターンに一致する場合にSIGTERM

    psとは

    現在実行中のプロセスに関する情報を表示するコマンドラインツールです。

    ps aux  # 全ユーザーの全プロセスを詳細表示

    killとは

    プロセスIDを指定してプロセスにシグナルを送信するコマンドラインツールです。

    kill -9 1234  # プロセスID 1234のプロセスを強制終了

    主要なオプションには以下があります:

    • -9 (SIGKILL): プロセスを強制終了します。プロセスは即座に終了し、クリーンアップ処理を行う機会がありません。
    • -15 (SIGTERM): デフォルトのシグナルで、プロセスに正常終了を要求します。
    • -1 (SIGHUP): プロセスに設定の再読み込みを要求します。

    例:kill -9 1234 はプロセスID 1234のプロセスを強制終了します。

    fg, bg, jobsの使い方

    これらのコマンドはジョブ制御に使用されます。

    これらのコマンドを使用することで、複数のジョブを効率的に管理し、シェル上での作業を柔軟に行うことができます。

    jobs

    jobsコマンドは、現在のシェルセッションでバックグラウンドで実行されているジョブのリストを表示します。

    $ jobs
    [1]  + running    sleep 100 &
    [2]  - running    nano file.txt

    fg

    fgコマンドは、バックグラウンドジョブをフォアグラウンドに移動します。

    $ fg %1  # ジョブ番号1をフォアグラウンドに移動

    bg

    bgコマンドは、一時停止されたジョブをバックグラウンドで再開します。

    $ sleep 100
    ^Z
    [1]  + 18653 suspended  sleep 100
    $ bg
    [1]  + 18653 continued  sleep 100

    キー操作

    ジョブをバックグラウンドで実行する方法には、主に2つあります:

    1. コマンド実行時にバックグラウンドで起動する
    2. 実行中のジョブをバックグラウンドに移動する
    コマンド実行時にバックグラウンドで起動する

    コマンドの末尾に `&` を付けることで、そのコマンドをバックグラウンドで実行できます。

    $ sleep 100 &
    [1] 12345

    この場合、sleep 100 コマンドがバックグラウンドで実行され、ジョブ番号と プロセスID が表示されます。

    実行中のジョブをバックグラウンドに移動する

    実行中のジョブをバックグラウンドに移動するには、以下の手順を踏みます:

    1. 実行中のジョブを一時停止する:Ctrl + Z キーを押します。
    2. 一時停止したジョブをバックグラウンドで再開する:bg コマンドを使用します。
    $ sleep 100
    ^Z
    [1]  + 12345 suspended  sleep 100
    $ bg
    [1]  + 12345 continued  sleep 100

    この操作により、フォアグラウンドで実行していたジョブをバックグラウンドに移動できます。

    ^ZとあるのはCtrl + Z キーのことです。

    その他のキー操作
    • Ctrl + C: フォアグラウンドで実行中のジョブを終了します。
    • Ctrl + D: 標準入力の終了(EOF)を送信します。多くのプログラムはこれにより終了します。

    これらのキー操作と jobsfgbg コマンドを組み合わせることで、効率的にジョブを管理できます。バックグラウンドジョブの使用により、複数のタスクを同時に実行しながら、シェルの対話的な使用を継続できます。

  • texinfoとman pageの概要

    Texinfoとは

    Texinfoは、単一のソースファイルから複数の形式(オンラインドキュメントや印刷用出力)を生成できるドキュメンテーションシステムです。主にソフトウェアのドキュメント作成に使用されます。

    man pageとは

    man page(マニュアルページ)は、Unixライクなオペレーティングシステムで使用される、コマンドラインツールやシステム関数のリファレンスマニュアルです。

    Texinfoの使い方

    1. Texinfoソースファイルの作成
    2. makeinfoコマンドでHTML、Info、またはPDF形式に変換
    3. 生成されたドキュメントの配布や公開

    texinfoはGNUプロジェクトの公式ドキュメンテーションシステムであり、Emacsと深い関わりがあります。Emacsは texinfoファイルを編集・閲覧するための機能を内蔵しており、Info modeを使用してtexinfo形式のドキュメントを直接閲覧できます。また、Emacsのドキュメントもtexinfoで書かれています。

    使い方は以下のコマンドで表示できます:

    man texinfo

    man pageの使い方

    1. manコマンドの基本構文:man [セクション] コマンド名
    2. よく使用されるセクション(1: ユーザーコマンド、5: ファイルフォーマット)
    3. man pageの構造(NAME、SYNOPSIS、DESCRIPTION等)

    日本語のパッケージは以下のコマンドでインストールします1

    sudo apt install manpages-ja manpages-ja-dev

    man pageは通常、8つのセクションに分かれています2が、そうでない場合もあります。man manで表示できます。次のコマンドでも概要を読めます。

    man 1 intro
    man 2 intro
    man 3 intro
    man 4 intro
    man 5 intro
    man 6 intro
    man 7 intro
    man 8 intro

    特定のセクションのman pageを参照するには、man [セクション番号] [コマンド名]の形式で指定します。

    1. manで基本的なコマンドの日本語表示がされない原因は? ↩︎
    2. manの読み方(初心者向け) ↩︎
  • 入門書

    Perplexity AIや他のLLMの知恵を借りて、サーバ管理やプログラミングに最低限必要な知識を紹介していきます。その他の記事もたまに書きます。

  • DebianとUbuntuのサーバ管理コマンド

    Debian リファレンスにサーバ管理の基本情報が記されています。

    以下に説明するシェルコマンドはGNOME 端末(GNOME Terminal)等の端末エミュレータ、或いはコンソールで実行します。

    Tabキーで入力補完出来ます。複数のコマンドを区切るのはセミコロンです。

    DebianとUbuntuは同じDebian系ディストリビューションであるため、多くのコマンドが共通しています。以下に主要なコマンドを説明します。

    root権限

    Debianではrootユーザとパスワードが設定されますので、管理者権限の必要なコマンドはrootアカウントに切り替えて実行します:

    su -l

    Ubuntuではroot権限にはsudoを使用します。sudoに続けてコマンドを入力し、enterを押します。続けてアカウントのパスワードを入力します。sudo実行権限を付与されているアカウントでログインしていることが前提です。カレントディレクトリを移動せずに何度もコマンドを実行したい場合は以下のようにします:

    sudo -H -s

    OSの停止と再起動

    システムの停止

    以下の何れかのコマンドを実行します1

    sudo shutdown -h now
    sudo poweroff

    システムの再起動

    以下の何れかのコマンドを実行します:

    sudo shutdown -r now
    sudo reboot

    サービスの管理

    DebianとUbuntuの新しいバージョンでは、systemdを使用してサービスを管理します。「メモリー中の全 サービス unit のリスト」を得るには次のようにします:

    systemctl list-units --type=service

    サービスの起動:

    sudo systemctl start <service-name>

    サービスの停止:

    sudo systemctl stop <service-name>

    サービスの再起動:

    sudo systemctl restart <service-name>

    サービスの状態確認:

    sudo systemctl status <service-name>

    古いバージョンのDebian/Ubuntuでは、serviceコマンドも使用できます:

    sudo service <service-name> start/stop

    その他の有用なコマンド

    システム情報の表示:

    uname -a

    ディスク使用量の確認:

    df -h

    メモリ使用量の確認:

    free -h

    プロセス一覧の表示:

    top

    または(要インストール):

    htop

    これらのコマンドを使用することで、DebianやUbuntuのサーバを効率的に管理することができます。サーバーの運用には適切な権限と注意が必要です。重要な操作を行う前には、必ずバックアップを取ることをお勧めします。

    1. reboot コマンド/poweroff コマンドの仕組み ↩︎
  • Debian GNU/Linux のインストール情報

    Debian のリリースのページから安定版 (stable)のリンクを辿ると、AMD64 移植版等のDebian GNU/Linux インストールガイドを読めます。最近のコンピュータは UEFI を採用していることが多いのですが、その点についても詳しく書かれています。

    古いコンピュータで動作するi386用については、将来サポートが終了するとの情報があります。

  • 新装開店

    サーバー移設中につき、暫く御不便をかけます。

    旧サイトのアカウントは削除しますので、御注文前に新たに登録し直して下さい。