自分は今までlinuxの簡単なディストリしか使ったことが無く管理ソフトから完成してるパッケージを入れたことしかない初心者です。最近仮想マシンにfreebsdを入れて使うことになったのですが、portsでfirefoxを入れたらパッケージの生成に凄く時間が掛かりました。pkgで入れれば速いのは分かってますが、色々新しいことを覚えたいので。ネットで情報を探すとfirefoxは他のアプリと比較してビルドに時間が掛かるらしいのですが以下気になる点が、
例えばバージョン53.0から53.1みたいにマイナーバージョンアップがよくありますがその度に数時間掛けて作らなければいけないのでしょうか?
それとportsとかpkgでは古いバージョンが入れられないのですが、例えばfirefoxの31等古いバージョンを入れたい場合はwindowsではftpからインストーラをダウンロードすれば済みますが、bsdではソースコードを拾ってきて自分で作らなければならないのでしょうか?

質問者からの補足コメント

  • うーん・・・

    ネット調べると自分でビルドする利点は使用するハードに最適化されると有ったのですが、詳しくお願いします。

    >・細かい設定変更ができる

    これは例えばプラグインでランゲージパックを入れなくても、日本語表示が出来るパッケージを作れるとかでしょうか?

    >それより古いバージョンを入れたい場合は、なんらかの方法で当時のインストールファイルを入手する必要があります。

    なんらかとは、例えばfirefox公式のftpからソースコードを入手して自分でパッケージを作るということですか?

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/05/21 21:56

A 回答 (1件)

pkg が「コンパイル済の実行ファイルをインストール」するだけなのに対し、


ports は、「ソースコードをダウンロードし、コンパイル(ビルド)・インストール」するものですので、
pkgに比べて「ビルド処理にかかる時間」が必要になります。

小規模なプログラムならいいですが、Firefox のような大規模プログラムですと、ビルドにものすごく時間がかかります。

portsのメリットは、
・pkgよりも新しいバージョンが使える
  通常、新バージョンへの対応はまず ports に入ってから、対応のpkgが出ます
・細かい設定変更ができる
  インストール済のpkgでは出来ないような細かい設定変更ができます。ただし、どんな設定変更ができるかはソフト次第です。
  「ビルドをやり直さないと変更できないような設定を持つプログラム」の場合のみ、この意味があります。
  Firefox はこの意味では portsから入れるメリットはありません。

なお、以上のような話はFreeBSDに限った話ではありません。
Linux でも、パッケージマネージャにもよりますが、
例えば rpm はバイナリを入れるものなのに対して、ソースから入れる srpm というものがありますし、
apt はバイナリだけでなく、ソースから入れることもできます。


> firefoxの31等古いバージョンを入れたい場合

pkg は、通常は適切なサイトからインストールファイルを自動でダウンロードしてインストールするようになっていますが、
予めダウンロードしておいた pkgファイルからインストールすることもできます。
古いバージョンのpkgファイルを手動でダウンロードすれば、古いバージョンのインストールも可能です。

ただし、公式ftpサイト ftp://pkg.freebsd.org からは、FreeBSDのそれぞれのバージョンで使える 公式pkgファイルがダウンロードできますが、
もっとも古いバージョンでも、 http://pkg.freebsd.org/FreeBSD:8:amd64/latest/All/ FreeBSD8用のFirefox39ですので、
それより古いバージョンを入れたい場合は、なんらかの方法で当時のインストールファイルを入手する必要があります。
この回答への補足あり
    • good
    • 0
この回答へのお礼

回答有り難う御座います。

お礼日時:2017/05/21 21:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Qpkg-config のPKG_CONFIG_PATHを設定するには?

$HOME/local/lib/pkgconfig
に .pcファイルがあるので

set PKG_CONFIG_PATH=$HOME/local/lib/pkgconfig
%pkg-config --exists glib-2.0

エラーになってしまいます。

%pkg-config --version
0.15.0


※root管理権限はありません。

Aベストアンサー

> set PKG_CONFIG_PATH=$HOME/local/lib/pkgconfig

setenv PKG_CONFIG_PATH $HOME/local/lib/pkgconfig

――では。シェル変数じゃなく、環境変数として設定するのだと思われます。

参考URL:http://www.is.noda.tus.ac.jp/text030397/text030397-1/node157.html

Qportsでapache22インスト時に入るMySQLのバージョンを指定したい

OS:FreeBSD6.2-release

portsで
--with-mysql
してapache22をインストールすると自動的にMySQL5.0-clientが入りますが、この時にMakefile等を編集してMySQL4.1-clientを入れることは出来ますか?
それとも、MySQL4.1-clientを先にインストールすべきなのでしょうか?

よろしくお願いします。

Aベストアンサー

現状の FreeBSD Ports Collection では残念ながら
依存するプログラムのバージョンを指定する方法が統一されておらず、
/usr/ports/Mk/* を読解して対応することになります。

MySQL の場合は bsd.databases.mk を読むと、
WITH_MYSQL_VER - User defined variable to set MySQL version.
と説明されています。

また、MySQL の場合は複数バージョンの併存はできないようなので、
インストールされてしまった目当てではないバージョンはアンインストールしておかなければなりません。

そのうえで
make install WITH_MYSQL_VER=41
とすればよいでしょう。


ただし、MySQL のように複数バージョンを併存させられない場合は特に、依存関係の整合を取るのが困難になるので、できるだけ ports システム側のデフォルトバージョンを利用するのが良いと思います。

Q古いパッケージの導入方法について

php 5.2.1_3 用の pdo を導入したいのですが、
ports ツリーが最新の状態です。

php のバージョンが 5.2.17 に、
php-extensions のバージョンも 1.3 になっています。
この状態で上記の pdo を導入するにはどうしたらいいのでしょうか。

# pkg_info
php5-5.2.1_3 PHP Scripting Language (Apache Module and CLI)
php5-extensions-1.1 A "meta-port" to install PHP extensions
php5-gd-5.2.1_3 The gd shared extension for php
php5-mbstring-5.2.1_3 The mbstring shared extension for php
php5-mysql-5.2.1_3 The mysql shared extension for php
php5-pcre-5.2.1_5 The pcre shared extension for php
php5-session-5.2.1_3 The session shared extension for php
php5-xml-5.2.1_3 The xml shared extension for php

ports/lang/php5
PORTVERSION= 5.3.8

ports/lang/php52
PORTVERSION= 5.2.17

ports/lang/php5-extensions
PORTVERSION= 1.5

ports/lang/php52-extensions
PORTVERSION= 1.3

ports/databases/php52-pdo で、
make install clean で問題ないものでしょうか。

それとも php をバージョンアップする事が必須となるのでしょうか。
また、こういう状態となる事の回避方法と言うか運用方法を
教えて頂けたら幸いです。

宜しくお願いします。

php 5.2.1_3 用の pdo を導入したいのですが、
ports ツリーが最新の状態です。

php のバージョンが 5.2.17 に、
php-extensions のバージョンも 1.3 になっています。
この状態で上記の pdo を導入するにはどうしたらいいのでしょうか。

# pkg_info
php5-5.2.1_3 PHP Scripting Language (Apache Module and CLI)
php5-extensions-1.1 A "meta-port" to install PHP extensions
php5-gd-5.2.1_3 The gd shared extension for php
php5-mbstring-5.2.1_3 The mbstring shared extension for ph...続きを読む

Aベストアンサー

回答もつかないようなので可能性を挙げます

(1)古いパッケージを拾ってきてpkg_addする
(2)古いソースを拾ってきて./configure→make→make installする

ただしどちらも依存関係を個人のスキルと責任で調整する必要があります。

Qパッケージのバージョンの調べ方

rpmでインストールされたパッケージは
rpm -qaなどでバージョンを確認することができますがソースからインストールした場合、そのパッケージのバージョンを知ることはできますか?

もうひとつ、SRPMという形式のパッケージがありますが、これをインストールするときもRPMで使用する
オプションと同じなのでしょうか?

Aベストアンサー

>バージョン
ソースからインストールした場合の各ソフトのバージョンですよね?
それともソースからパッケージを作ってインストールした場合?

前者なら調べたいソフトの引数に-vなどがあればバージョンを表示できるかとおもいます。
rpm -qaのような汎用的なものはないとおもいます

>SRPM
これはソースパッケージなので、通常はコンパイルしてRPMパッケージにしてから、インストールします。
RPMパッケージではライブラリなど現在の環境に合わないって場合に、簡単に現在の環境に合わせたRPMパッケージを作ることができるので便利です。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/223instsrpm.html

Qdebianで最新(or任意の)バージョンをパッケージをインストールする方法

debian 3.1r4 (sarge) を使用しています。
パッケージ管理は aptitude を使用しています。
メールサーバーに postfix を選択すると、2.1.5-9 がインストールされます。
これで運用していましたが、postifxの 2.2以降を使用する必要に迫られています。
どのような操作をすれば新しいバージョンをインストールできますでしょうか?
(ソースのリコンパイルならできますが、それでなくて、
 できるのならちゃんとパッケージ管理システムを使って管理したい)

試しに souce.list を書き換えて stable を testing にすると
2.3.3-1 が選択可能になりましたが、インストールしようとすると
「展開後900MBもの大量のファイルをインストールするが良いか?」
という旨のメッセージが表示されるため、今のところやっていません。
(もし余計なものまで最新の testing版にされるなら本意ではないので)

よろしくお願いいたします。

Aベストアンサー

backportsプロジェクトには今のところpostfix 2.3.3まであるようです。
詳しくは"backports.org"で検索してみてください。
(たぶんhondan999さんならこのヒントで十分だと思う)


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報