How to setup a FPC and Lazarus Ubuntu repository/ja

From Lazarus wiki

English (en) français (fr) 日本語 (ja) português (pt) русский (ru) slovenčina (sk)

メインページ - Lazarus Documentation日本語版 - 翻訳ノート - 日本語障害情報


もし Lazarus をダウンロードしたいだけであれば、Ubuntu リポジトリを使えばいいだけのことです。

このページは、自分専用リポジトリーのセットアップ方法について記述したもので、普通のユーザーにはあまり意味のないものです。(訳者注:ローカルリポジトリまで作成するほどのものではないが、Ubuntu 上で最新の Lazarus を使いたい、という方にとってもかなり有用な情報になると思います)


ubuntu のリポジトリーはディレクトリーです。ローカルディスク上、ウェブサーバー上、または、FTP サーバー上に構築することができます。 使用するには、そのパスを /etc/apt/sources.list に加え、PGP 鍵をセットアップします。それによりお気に入りのパッケージマネージャ(package gui、例えば synaptic)を使って Lazarus をシンプルにインストールでき、fpc、fpc-src、Lazarus らのダウンロード、インストール、アップデートが自動化されます。


FPC+Lazarus をコンピュータのプール上からインストールすることを望む管理者。学校のような。または、即時のテストを望む初心者。


リポジトリを apache ウェブサーバーを利用して作成したいものと仮定します。そうであるなら public に読み出し可能で root だけが書き込み権限を持つ /var/www/lazarus のようなディレクトリを作成する必要があります。


 mkdir -p /var/www/lazarus/dists/lazarus-testing/universe/binary-i386
 mkdir -p /var/www/lazarus/dists/lazarus-testing/universe/binary-amd64

deb ファイル

fpc、 fpc-src、 lazarus の deb ファイルをそこに置いてください。

自分で deb ファイルを作成する

Lazarus に付属の tools/install/ 内のスクリプトを使って deb ファイルを作成できます。


  • 開発用パッケージをインストールする。:
 sudo apt-get install libgtk2.0-dev libgtk1.2-dev libgdk-pixbuf-dev libgpmg1-dev fakeroot libncurses5-dev
   sudo apt-get install fakeroot
   sudo apt-get install fpc
  • FPC の最終安定版をインストールする。新しい FPC や Lazarus をビルドするために必要です。:
 deb ファイルか tar.gz ファイルをオフィシャルサイトから入手してください。
   sudo apt-get install fpc
  • FPC のソースをダウンロードします。現在開発中のバージョンを使うなら下記のコマンドが使えます。より安定したバージョンを取得するなら Installing_Lazarus#FPC Sources を参照してください(訳者注:多くの方は FPC の安定版を使うと思いますので、通常は「sudo apt-get install fpc-source」でインストールできます。仮に公式リポジトリの FPC のバージョンが FPC サイトで配布されている安定版より古い場合は、 から入手した deb ファイル郡を「sudo dpkg -i fp-*.deb」、「sudo dpkg -i fpc-*.deb」としてインストールし使えばよいだけです。通常は FPC 関係の deb を自分で作成する必要はなさそうです)。:
 svn co fpc
  • Lazarus のソースをダウンロードします(訳者注: svn は sudo apt-get install subversion とすることでインストールできます)。:
 svn co lazarus

新しい deb ファイルを構築する

  • Lazarus インストールスクリプトディレクトリに移動する。:
 cd lazarus/tools/install
  • FPC の deb ファイルを構築する(訳者注:安定版を使う場合は から入手すればよいので不要です)。The following script will build a single fpc deb using the date as version. As parameter you must specify the path of the FPC sources you downloaded above:
 sudo ./ fpc /path/to/the/sources/of/fpc/
  • 新しい fpc の deb ファイルをインストールします(訳者注:安定版を使う場合は不要です)。これは Lazarus の deb ファイルを構築するために必要となります。最初に古い FPC をアンインストールすることを忘れないでください。
 sudo dpkg -i fpc_2.3.1-070726_i386.deb
  • fpc-src の deb ファイルを構築します(訳者注:安定版を使う場合は不要です)。この作業は上の作業とほぼ同じです。:
 ./ fpc-src /path/to/the/sources/of/fpc/
  • Lazarus の deb ファイルを構築する。 gtk2 版の通常の Lazarus を構築する場合:
 ./ append-revision

gtk1 版の場合:

 ./ gtk1 append-revision

(訳者注:以上の手順で完成した Lazarus の deb ファイルを「sudo dpkg -i lazarus*.deb」としてインストールすれば最新の Lazarus を Ubuntu 上で使うことができます。ローカルリポジトリまでは必要ない方は、以下の作業は不要ということになります)

リポジトリの deb ファイルを置き換える

Now you have 3 deb files.

You can install them directly, but first un-install the build version

  • If you installed fp-compiler you will need to:
dpkg -r fp-compiler fp-units-rtl fp-compiler 
  • Copy them to your repository:
 cp fpc_2.3.1-070726_i386.deb fpc-src_2.3.1-070726_i386.deb lazarus_0.9.23.11636-0_i386.deb \
  • Don't forget to remove the old ones.


You need to sign the debs with a PGP key, so that the target systems can be sure, that no evil-doer replaced the files.

Creating a PGP key

You can use tools like seahorse or thunderbird to create the PGP key.

  • Install seahorse
  • start seahorse
  • Key > Create new key
  • A window popup up asking for the type. Choose PGP Key.
  • Give a full name and an email adress and click Create.
  • The passphrase is needed to encrypt the created files. This way no one can use the keys but you, even if they manage to steal your files. If you think, your files will never stolen or read by others you can leave them empty.
  • Creating the keys will take some minutes

Upload the key to a public key server

In order to share the key you can upload the key to a public key server.

  • start seahorse
  • Edit > Preferences > Key servers > Publish key to: choose a key server. For example: hkp:// Close the dialog.
  • Remote > Sync and publish key > Sync.

Remember the key ID

You need the key ID later. The key ID is shown in seahorse. But you can see it also via:

 gpg --list-keys

Updating repository files

Put the following script into /var/www/lazarus, edit it for your needs and run it:

#!/usr/bin/env bash

set -x


for Arch in i386 amd64; do

  # create index
  apt-ftparchive packages $Dir > $Dir/Packages
  cat $Dir/Packages | gzip -9c > $Dir/Packages.gz
  cat $Dir/Packages | bzip2 > $Dir/Packages.bz2

# create Release file
rm -f $MainDir/Release*
echo "Origin: Lazarus" >> $MainDir/Release
echo "Label: Lazarus" >> $MainDir/Release
echo "Suite: unstable" >> $MainDir/Release
echo "Codename: lazarus-testing" >> $MainDir/Release
echo "Version: 1.0" >> $MainDir/Release
echo "Date: $Date" >> $MainDir/Release
echo "Architectures: amd64 i386" >> $MainDir/Release
echo "Components: universe" >> $MainDir/Release
echo "Description: Lazarus testing 1.0" >> $MainDir/Release

apt-ftparchive release $MainDir >> $MainDir/Release

# sign Release file
gpg --sign --homedir=$GPGHome -ba -o $MainDir/Release.gpg $MainDir/Release

# end.

This will create index files Packages, Packages.bz2 and Packages.gz. And it will create the Release file containing the checksums of the deb packages and sign it (Release.gpg).

Adding the repository to a client

IMPORTANT: If you only came here to download lazarus for ubuntu/debian then use the stable repository Ubuntu repository. The repository below is an unstable, testing repository.

The following steps must be done on each computer, you want to use your repository.

Add the key

Download the key from the public key server:

 gpg --keyserver hkp:// --recv-keys 3A5B1204

The 3A5B1204 should be replaced with your key id. Check the output, that you got the right key.

Add it to the apt system:

 gpg --export 3A5B1204 | sudo apt-key add -

You can see the list of apt keys with:

 sudo apt-key list

Add the repository

You can use synaptic for this or edit the /etc/apt/sources.list directly. Add the line:

 deb lazarus-testing universe

Replace the http path with your own.

Install Lazarus

For example:

 sudo apt-get update
 sudo apt-get install lazarus