ソースからのビルドとSnap/Flatpakの利用
システムのパッケージマネージャーだけに頼らず、パッケージが存在しない場合はソースからソフトウェアをコンパイルし、SnapやFlatpakなどの汎用パッケージ形式でディストリビューションのリポジトリに依存せず最新アプリをインストールします。
「ソースからのビルドとSnap/Flatpakの利用」はCoddyKit上の無料Linux Server Deployment & SSH Masteryレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Server Deployment & SSH Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。
パッケージマネージャーだけでは不十分な場合
ほとんどのニーズはAPTとYUMで満たせますが、ツールがパッケージ化されていない場合、リポジトリ内のバージョンが古すぎる場合、または特定のバージョンが必要な場合があります。そのような場合には、次の2つの選択肢があります。
- ソフトウェアをソースからコンパイルする
- SnapやFlatpakのような汎用パッケージ形式を使用する
このレッスンでは両方を扱います。
ビルドツールを準備する
コンパイルには、コンパイラー、make、開発用ライブラリからなるツールチェーンが必要です。Debian/Ubuntuでは、build-essentialメタパッケージが基本的なツールをまとめてインストールします。
sudo apt install build-essential
# RHEL/Fedora:
sudo dnf groupinstall 'Development Tools'ソースコードを取得する
ソースコードは通常、圧縮tarballまたはgitリポジトリとして提供されます。ダウンロードして展開し、ディレクトリに移動してください。
wget https://example.com/tool-1.2.tar.gz
tar -xzf tool-1.2.tar.gz
cd tool-1.2configure / make / installのサイクル
従来のGNUビルドプロセスには、次の3つの手順があります。
./configure— システムを確認し、ビルドを準備するmake— コードをコンパイルするsudo make install— バイナリを所定の場所にコピーする
この方法は数十年前から使われており、現在も一般的です。
./configure
make
sudo make installインストール先のプレフィックスを選ぶ
デフォルトでは、ソフトウェアは/usr/localにインストールされます。--prefixで変更して分離しておくと、簡単に削除できます。
ホームディレクトリにインストールすれば、root権限をまったく必要としません。
./configure --prefix=/opt/tool
make
sudo make install不足している依存関係に対処する
./configureでライブラリが不足しているというエラーが表示された場合は、対応する-devパッケージをインストールしてください。開発用パッケージには、ソースコードがコンパイル時に参照するヘッダーファイルが含まれています。
sudo apt install libssl-dev zlib1g-dev
./configureソースからビルドしたソフトウェアをアンインストールする
ソースからインストールする場合の欠点は、自動アンインストールがないことです。プロジェクトが対応していれば、ビルドディレクトリからmake uninstallを実行してください。対応していない場合も、分離した--prefixを使っていれば、フォルダーを削除するだけで済みます。
sudo make uninstall
# or, if you used --prefix=/opt/tool:
sudo rm -rf /opt/tool汎用パッケージ:Snap
Snapパッケージはアプリと依存関係をまとめるため、snapdがあるどのディストリビューションでも実行できます。自動更新され、サンドボックス化されています。
sudo snap install htop
snap list
sudo snap remove htop汎用パッケージ:Flatpak
Flatpakも汎用パッケージ形式の1つで、デスクトップアプリで広く使われています。Flathubのようなリモートリポジトリを通じて配布されます。リモートを一度追加すれば、アプリケーションIDを指定してインストールできます。
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gimp.GIMP
flatpak run org.gimp.GIMP適切な方法を選ぶ
目的に合った方法を選んでください。
- APT/YUM — デフォルトの方法で、統合性が高く、自動更新される
- Snap/Flatpak — 最新バージョン、ディストリビューション間で利用可能、サンドボックス化
- Source — パッケージ化されていないソフトウェアやカスタムビルドのための最終手段
パッケージを優先し、必要な場合にのみソースからビルドしてください。
ベストプラクティス
パッケージマネージャー以外の方法で安全にインストールするには、次の点に注意してください。
- 設定前に、必ずビルド依存関係をインストールする
- 後でソースからのビルドを削除できるよう、クリーンな
--prefixを使用する - ダウンロードしたファイルのチェックサムまたは署名を検証する
- 保守されたパッケージがある場合は、ソースよりSnap/Flatpakを優先する
クイックチェック
ソフトウェアのインストールに関する知識を確認しましょう。
振り返り
これで、標準リポジトリ以外からもソフトウェアをインストールできるようになりました。
- ソースから:
./configure→make→make install。分離するには--prefixを使用します - Snap:自己完結型で自動更新されるアプリには
snap installを使用します - Flatpak:Flathub のリモートとアプリ ID を使用します
これらを利用するのは、APT/YUM では必要なものを提供できない場合に限りましょう。
よくある質問
「ソースからのビルドとSnap/Flatpakの利用」レッスンは無料ですか?
はい。「ソースからのビルドとSnap/Flatpakの利用」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Server Deployment & SSH Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。
「ソースからのビルドとSnap/Flatpakの利用」で何を学びますか?
システムのパッケージマネージャーだけに頼らず、パッケージが存在しない場合はソースからソフトウェアをコンパイルし、SnapやFlatpakなどの汎用パッケージ形式でディストリビューションのリポジトリに依存せず最新アプリをインストールします。 ブラウザで直接実行するハンズオンコードでLinux Server Deployment & SSH Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Linux Server Deployment & SSH Masteryを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLinux Server Deployment & SSH Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「ソースからのビルドとSnap/Flatpakの利用」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLinux Server Deployment & SSH Masteryレッスンでコードを書いて実行できますか?
はい。すべてのLinux Server Deployment & SSH Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- APTとYUMのパッケージマネージャー
- ソフトウェアのインストールと更新
- ソフトウェアリポジトリの管理
- ソースからのビルドとSnap/Flatpakの利用