Linux学習についてのまとめ 04        リポジトリとパッケージ

こんにちは。22年度入社の中島です。

前回はLinuC101試験に向けての学習の一環として、ファイルシステムについての記事を作成しました。今回はリポジトリとパッケージについての内容をまとめました。この記事を通じて、リポジトリとパッケージの基本的な内容、設定に使用される一部コマンドをまとめましたので共有します。

リポジトリとは?

リポジトリは、ソフトウェアパッケージを保管し、管理する場所です。リポジトリを利用すると、ソフトウェアを簡単に検索・インストールできます。多くのLinuxディストリビューションでは、公式リポジトリが提供されており、信頼性の高いソフトウェアを利用できます。

リポジトリの種類

  • 公式リポジトリ: ディストリビューション提供元が管理する信頼性の高いリポジトリ (例: Ubuntuのmain, universe)。
  • サードパーティリポジトリ: 外部の開発者や組織が提供するリポジトリ(例: EPEL, PPA)。公式リポジトリにはないソフトウェアが含まれることがあります。
  • ローカルリポジトリ: ネットワークを使わず、ローカルで管理されるリポジトリ。

パッケージ管理システム

Linuxでは、ディストリビューションごとに異なるパッケージ管理システムが使われます。以下は主要なパッケージ管理システムです。

ディストリビューションパッケージ管理システム
Debian系 (Ubuntu等)APT (dpkg)
Red Hat系 (RHEL, CentOS等)YUM / DNF(rpm)
Arch系Pacman

パッケージのインストール・削除

APTを使ったパッケージ管理(Debian系)

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

これにより、システムにvimがインストールされ、vimコマンドでエディタを開けるようになります。

パッケージの一覧表示

このコマンドを使用すると、現在インストールされているすべてのパッケージを確認できます。

パッケージの削除

removeはソフトウェア本体のみを削除し、purgeは関連する設定ファイルも含めて削除します。

YUM/ DNF(rpm)を使ったパッケージ管理(Red Hat系)

yumとdnfの違いについて

yum(Yellowdog Updater, Modified)は、Red Hat系のディストリビューション(RHEL, CentOS, Fedoraなど)で長年使用されてきたパッケージ管理ツールです。
dnf(Dandified YUM)は、yumの後継として開発され、yumよりも高速でメモリ使用量が少なく、依存関係の処理が改善されたパッケージ管理ツールです。

 yum の基本的なコマンドは dnf でも使えますが、一部オプションが異なります。また、新しい環境では dnfを使うのが推奨されます。

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

yumまたはdnfを使用すると、依存関係も解決して自動的に関連パッケージをインストールしてくれます。

パッケージの一覧表示

このコマンドを使用すると、現在インストールされているパッケージのリストを取得できます。

パッケージの削除

このコマンドを実行すると、指定したパッケージが削除されます。YUM/DNFは依存関係の整理も行うため、注意が必要です。

パッケージの検索

APTを使った検索(Debian系)

パッケージ名を検索

searchを使うことで、vimという名前を含むすべてのパッケージを検索できます。

パッケージ内のファイル検索

このコマンドを使うと、/usr/bin/vimを提供しているかを調べることができます。

インストール済みのパッケージを確認

このコマンドは、インストール済みのパッケージ一覧を表示し、 grepで特定のパッケージを検索できます。

YUM/DNFを使った検索(Red Hat系)

特定のファイルを含むパッケージを検索

searchを使用すると、指定したキーワードに関連するすべてのパッケージを一覧表示できます。

パッケージ内のファイル検索

providesを使用すると、特定のファイルがどのパッケージに含まれているかを調べることができます。

インストール済みのパッケージを確認

このコマンドを使用すると、システムにインストール済みのパッケージを確認できます。

リポジトリの追加と管理

リポジトリを追加することで、公式リポジトリにはないソフトウェアをインストールできるようになります。

APTでリポジトリを追加する(PPAの例)
YUM / DNFでリポジトリを追加する(EPELの例)

EPELはRed Hat系の拡張リポジトリで、多くの追加パッケージが含まれています。

おわりに

今回の記事では、リポジトリとパッケージ管理の基本についてまとめました。Linuxのパッケージ管理はシステムの運用に欠かせない重要な知識です。リポジトリの理解と適切なパッケージ管理を行うことで、安全で効率的な環境を構築できます。

LinuC 101試験に向けて、基本的なコマンドをしっかりと身につけ、試験に備えたいと思います。

今回はここまで
最後までご覧いただきありがとうございました!

2025年 新入社員ブログ 高田06 [MySQLバックアップ・リストア方法まとめ]

こんにちは、2024年4月に入社した高田です。
入社してから数ヶ月が経ち、社内研修を終えて、少しずつ実際の業務に携わるようになりました。最近は、実務の単体試験の一環としてMySQLのデータベース操作を行う機会があり、その中でデータベースおよびテーブルのバックアップとリストアを行いました。
今回は、MySQLのバックアップ・リストア方法について、手順やポイントを説明します。

MySQLのバックアップ方法

1. 単一のデータベースをバックアップ

以下のコマンドを使用すると、特定のデータベース全体をバックアップできます。
なお、「-h ホスト名」は、リモートサーバーに接続する場合に指定します。ホスト名が「localhost」の場合は、-h localhost を省略してもデフォルトで「localhost」に接続されます。


2. 特定のテーブルをバックアップ

特定のデータベース内の一部のテーブルのみをバックアップしたい場合は、以下のコマンドを使用します。


MySQLのリストア方法

バックアップファイルから特定のデータベースにデータをリストアする場合、バックアップファイルが単一のデータベース全体であっても、複数のテーブルを含む場合であっても、以下のコマンドでリストアできます。「-h ホスト名」については、バックアップ時と同様です。ホスト名が 「localhost」の場合は、省略してもデフォルトで「localhost」に接続されます。


実例

社内研修で使用した「laravelDB」というデータベースを使ってデータベースおよびテーブルのバックアップとリストアを実施します。
「laravelDB」データベースは「users」テーブルと「prefectures」テーブルの2つのテーブルを含んでいます。

データベースのバックアップ・リストア手順

1. データベースのバックアップ


2. リストア用のデータベース作成


3. データベースのリストア


以上の3ステップを実行すると、「laravelDB」データベースのバックアップデータを使用して、「laravelDB_restore」データベースに復元できます。復元後のデータベースには、バックアップ時点のデータやテーブル構造が再現されていることを確認できます。

テーブルのバックアップ・リストア手順

1. テーブルのバックアップ

2. リストア用のデータベース作成

3. テーブルのリストア


以上の3ステップを実行すると、「users」テーブルと「prefectures」テーブルのバックアップデータを作成し、新しく作成した「laravelDB_restore_tables」データベースに復元できます。データベース全体ではなく、特定のテーブルのみを対象としてバックアップ・リストアを行うため、復元後のデータベースにはバックアップしたテーブルのみが含まれ、それ以外のテーブルは存在しません。

まとめ

今回は、MySQLの基本的なバックアップおよびリストア手順について学びました。研修では、SELECT文、UPDATE文、DELETE文、CREATE文の使用方法を中心に学習しましたが、バックアップやリストアもコマンドを使用することで手軽に実行できると知りました。
本番環境のデータを扱う際には、事前にバックアップを取得し、万が一のトラブル時にも迅速にデータをリストアできるよう備えておくことが重要だと思いますので、今回学習した知識や技術をしっかりと整理し、必要なときに迅速に活用できるようにしていきたいと思います。

2025年 新入社員ブログ 高田05 [ローカル環境構築の利点と感想]

こんにちは、2024年4月に入社した高田です。
社内研修で Laravel を使用して会員登録フォームを作成しました。その際、ローカル環境は Docker を用いましたが、別の方法でも環境構築を試してみたかったため、Vagrant を使って同じ構成のローカル環境を構築しました。
今回は、ローカル環境構築における利点と、DockerやVagrantを学んだ感想について紹介したいと思います。

ローカル環境構築の利点

1. プログラムの動作確認が手軽に行える

Laravel を使って開発を進めるには、PHP や Web サーバー(Apache など)が動作する環境が必要ですが、一般的なWindows PCにはPHP や Web サーバーはインストールされていません。作成したプログラムを動かすには別途Webサーバーを用意し、Webサーバーにプログラムファイルをアップロードする必要があります。
しかし、Webサーバー用のPCを新たに用意するのは場所や費用の問題もあるので難しい場合があります。このような課題は、ローカル環境を導入することで解決できます。
ローカル環境を導入すると、自分のPC がサーバーとして動作するような状態となるため、新たにWebサーバー用のPCを用意する必要がありません。
また、同一PC内でWebサーバーが動作する形となるため、設定次第でWebサーバーにプログラムファイルをアップロードする手間を省くことができます。
ローカル環境を導入することにより、修正や確認のサイクルが短縮され、プログラム開発効率が大幅に向上します。

2. ローカル環境構築を通じたインストールと設定の習得

ローカル環境を構築する過程で、以下のようなWebアプリケーションを動かすための各種ソフトウェアについて、インストール方法や設定方法を学ぶことができました。
・PHP
・Web サーバー(Apache)
・データベース
具体的には、PHP を Web サーバーと連携させる仕組みや、MySQL などのデータベースとアプリケーションを接続する方法を学びました。コマンドでインストールを行うため、コマンドの使用方法についても復習出来ました。

3. 実務での開発安定化

ローカル環境を持たず、1つの開発サーバー上のファイルを複数人で直接編集すると、以下のようなトラブルが発生することがあります。
・他人が編集していることに気付かずにファイルを上書きしてしまう可能性がある
・誰がどの変更を加えたのか把握しにくくなる
ローカル環境を構築することで、上記のようなトラブルを防ぐことができます。結果として、安定した開発が可能になります。

Docker・Vagrant を学んだ感想

1. Linux、ネットワークの知識が必須

Docker や Vagrant を学ぶ上で、Linux やネットワークに関する基礎知識は不可欠だと感じました。基礎知識があることで、環境構築の全体像を把握しやすくなり、作業を効率的に進められます。さらに、エラーが発生した際や情報を検索する際も、技術記事の内容をスムーズに理解できるようになります。
一方で、Linux やネットワークの知識が不足していると、設定やエラー対応に時間がかかり、調べた情報を十分に活用できず、環境構築が思うように進まないことがあります。

2. 初心者が使用する場合はVagrantの方が簡単

Vagrantを使った環境構築は、手順がシンプルで初心者でも取り組みやすいと感じました。特に、Vagrantfileの記述だけで仮想マシンを構築できる点が大きな利点です。
仮想環境を使う場合、ホストOS(自分のPC)と仮想環境(VagrantやDockerなど)の間でファイルを共有するための仕組みとして「マウント」があります。マウントを設定すると、ホスト側で編集したファイルが仮想環境内にも反映されるため、設定が重要です。
ただし、Vagrantでマウントを設定する際、意図したとおりに機能しないことが多く、調べながら試行錯誤する必要がありました。初心者にとっては設定の難しさがハードルになりやすいと感じました。
Dockerを使用する場合、Dockerfileに加えて複数のコンテナを管理するためのdocker-compose.ymlファイルも必要になります。コンテナの仕組みや設定ファイルの記述方法を理解する必要があり、環境構築の経験が少ない初心者にとっては難易度が高いと感じました。
環境構築のしやすさを考えると、Vagrantの方が初心者には導入しやすく、理解しやすいと感じました。

まとめ

今回は、ローカル環境構築の利点と、DockerやVagrantを学んで感じたことを紹介しました。社内研修用に作成したローカル環境ですが、今後は実務でも新たにローカル環境を構築する機会が増えると考えています。
実務では、単にローカル環境を構築するだけでなく、メンバー間での手順やローカル環境ファイルの共有方法、複数人で進める際の利点にも注目しながら活用していきたいと考えています。