web-dev-qa-db-ja.com

どうすればDebianを安定して実行できますが、テストからいくつかのパッケージをインストールできますか?

サーバーを実行していて、Stable(Lenny)からTesting(Squeeze)にアップグレードして、必要なパッケージを1つまたは2つだけインストールしたくないとします。

テストから特定のパッケージのみをインストールする最良の方法は何ですか?

210
Gareth

apt_preferences

/ etc/apt/preferencesファイルで、システムが「セーフアップグレード」するデフォルトのレベルを定義します。
man apt_preferences

Apt_preferencesでできることはたくさんありますが、簡単にするために...

テストでのみ利用可能な単一のパッケージ(autoMysqlBackup)をインストールする必要がありました。解決策は、以下を/ etc/apt/preferencesに追加することでした。

Explanation: Uninstall or do not install any Debian-originated
Explanation: package versions other than those in the stable distro
Package: *
Pin: release a=stable
Pin-Priority: 900

Package: *
Pin: release o=Debian
Pin-Priority: -10

/etc/apt/sources.listに複数のリポジトリを追加すると、後のリリースリポジトリがリストされていても(この場合は「安定」)、aptitudeは指定したリリースにのみアップグレードします。

deb http://mirror.aarnet.edu.au/debian/ lenny main
deb-src http://mirror.aarnet.edu.au/debian/ lenny main
deb http://mirror.aarnet.edu.au/debian/ squeeze main
deb-src http://mirror.aarnet.edu.au/debian/ squeeze main

したがって、そのパッケージをインストールするには、次のことを行うだけです。

$ aptitude install -t testing packageName 
49
Gareth

多くの人は安定とテストを混在させることを恐れているようですが、率直に言って、テスト自体はかなり安定しており、適切な設定とソリューションチェックを行うことで、コアパッケージを不安定なパスに置く「安定性のドリフト」を回避できます。

「テストはかなり安定していますか?」、と尋ねます。はい。パッケージが不安定版からテスト版に移行するには、10日間連続して未解決のバグがないことが必要です。特に人気のあるパッケージでは、何かが間違っている場合、誰かが不安定版のバグレポートを提出する可能性があります。

環境を混在させたくない場合でも、安定しているバージョンよりも新しいバージョンが必要な場合に備えて、オプションを用意しておくと便利です。

これを設定するために私がお勧めするものは次のとおりです:

まず、/etc/apt/preferences.dに次のファイルを作成します。

stable.pref

# 500 <= P < 990: causes a version to be installed unless there is a
# version available belonging to the target release or the installed
# version is more recent

Package: *
Pin: release a=stable
Pin-Priority: 900

testing.pref

# 100 <= P < 500: causes a version to be installed unless there is a
# version available belonging to some other distribution or the installed
# version is more recent

Package: *
Pin: release a=testing
Pin-Priority: 400

unstable.pref

# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package

Package: *
Pin: release a=unstable
Pin-Priority: 50

experimental.pref

# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package

Package: *
Pin: release a=experimental
Pin-Priority: 1

(ここで不安定/実験的なことを恐れないでください。優先度は十分に低く、そのようなものを自動的にインストールすることは決してありません。テストしたブランチでさえ、目的のパッケージをインストールするだけなので、動作しますテスト中。)

次に、/etc/apt/sources.list.dに一致するセットを作成します。

stable.list:元の/etc/apt/sources.listからコピーします。古いファイルの名前をsources.list.origなどに変更します。

testing.listtestingを除いて、stable.listと同じです。

unstable.listunstableを除いてstable.listと同じで、セキュリティリストを削除します。

experimental.listexperimentalを除いて、unstable.listと同じです。

sources.lists.dおよびpreferences.doldstableを追加することもできます(優先度1を使用)。ただし、このモニカは次の安定したサイクルの前に期限切れになり、消える傾向があります。そのような場合は、http://archive.debian.org/debian/とDebianバージョン(etch、lennyなど)の「ハードコード」を使用できます。

パッケージのテストバージョンをインストールするには、単にaptitude install lib-foobar-package/testingを使用するか、aptitudeのGUIにジャンプして、パッケージの詳細内のバージョンを選択します(表示しているパッケージでEnterキーを押します)。

パッケージの競合に関する苦情があった場合は、最初に解決策を確認してください。ほとんどの場合、最初のバージョンは「このバージョンをインストールしない」です。パッケージごとの受け入れ/拒否リゾルバーの選択の使用方法を学びます。たとえば、foobar-package/testingをインストールしていて、最初の解決策が「foobar-package/testingをインストールしない」である場合、その選択を拒否としてマークすると、他の解決策はそのパスに二度と向きません。このような場合、おそらく他のいくつかのテストパッケージをインストールする必要があります。

(libcやカーネル、その他の巨大なコアシステムをアップグレードしようとしているなど)毛がひどくなっている場合は、これらのアップグレードパスを拒否するか、最初のアップグレードから完全に戻ることができます。可能であれば、テスト/不安定版にのみアップグレードすることに注意してください。

編集:いくつかの優先ピンを修正し、リストを更新しました。

187
Brendan Byrd

/etc/apt/apt.conf.d次のファイルを追加

99defaultrelease

APT::Default-Release "stable";

/etc/apt/sources.list.d-テスト用/不安定なソース用のURLを追加

stable.list

deb     http://ftp.de.debian.org/debian/    stable main contrib non-free
deb-src http://ftp.de.debian.org/debian/    stable main contrib non-free

deb     http://security.debian.org/         stable/updates  main contrib non-free

testing.list

deb     http://ftp.de.debian.org/debian/    testing main contrib non-free
deb-src http://ftp.de.debian.org/debian/    testing main contrib non-free

deb     http://security.debian.org/         testing/updates  main contrib non-free

走る

apt-get update

そして、必要なものをインストールします

apt-get -t testing install something

依存関係がたくさんあるものをインストールする場合は、十分に注意してください。本番環境ではこれを行わないでください。

backports または同様のリポジトリで運を試すこともできます。

102
pQd

価値があることについて、私がいつも見てきた一般的なアドバイスは、「安定したものを何も混ぜないでください」です。混合システムのチュートリアルのほとんどは、テストの混合と不安定のためのものです。

理論的には、安定版とテスト版を混在させる場合、非常に基本的なパッケージ(libc6など)には(テスト版からソフトウェアをインストールするために)更新が必要であり、これらの基本パッケージがテスト版に移行すると、システム全体がそのようにドリフトする可能性があります。

2つの選択肢があります。

  1. Backports を使用します。
  2. テストからソース行をインストールし、- ソースから必要な新しいバージョンをビルド してみてください。
13
Telemachus

Debianのドキュメンテーションは主題について広範囲に渡っています。debianシステムの美しさを本当に明らかにするため、私はDigに参加することを強くお勧めします。

混合システムを維持する方法 を参照してください。これは、tioが知っておく必要があるすべてを説明します。

12
tomdeb

TestingまたはSidからの多くの依存関係のインストールを防ぐことができる別の方法は次のとおりです:apt-getに、TestingまたはSidからパッケージのソースを取得し、Debianツールを使用してシステムのパッケージを作成するように指示します(手動で変更する必要はありません)ソース付き)。

ここから引用:
https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F

sidパッケージをテスト版または安定版にバックポートするにはどうすればよいですか?

Debianソース(および開発ツール、特にdebhelper、devscripts、およびbuild-essential)をインストールしてから、パッケージをビルドします。

ステップバイステップ:

add a deb-src line for sid to your sources.list

apt-get update

apt-get build-dep PACKAGE_NAME

apt-get -b source PACKAGE_NAME 

結果のdebsは現在のディレクトリにあり、dpkg -i the.debでインストールできます。

7
gerlos

安全で便利にできると自信を持てるように、長い間やっています。以下の設定では、安定したバージョンがデフォルトでインストールされますが、Aptitudeでは、必要に応じてバックポートまたは不安定なバージョンを選択することもできます。

enter image description here

編集が必要なものは4つあります。デフォルトのピン留めリリースを設定する必要があります。ソースにバックポートと不安定版を追加する必要があり、バックポート/不安定パッケージのピン留め優先度を下げます。ピン留めを表示するには、aptitudeの表示設定を変更する必要があります。

  • '/ etc/apt/apt.conf.d/10defaultrelease'を作成し、その内容を次のようにします。
 Apt :: default-Release "stable"; 
  • '/ etc/apt/sources.list'を編集して、不安定なソースとバックポートソースを追加して、次のようにします。
#deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_-Official multi-architecture AMD64/i386 NETINST#1 20110205-14:45]/squeeze main 
 
 deb http ://ftp.us.debian.org/debian/ squeeze main 
 deb-src http://ftp.us.debian.org/debian/ squeeze main 
 
 deb http://security.debian.org/ squeeze/updates main 
 deb-src http://security.debian.org/ squeeze/updates main 
 
#squeeze-update 、以前は「volatile」として知られていました
 deb http://ftp.us.debian.org/debian/ squeeze-updates main 
 deb-src http://ftp.us.debian.org/debian/squeeze-updates main 
 
#squeeze backports 
#http://backports.debian.org/Instructions/
deb http:// backports。 debian.org/debian-backports squeeze-backports main 
 
#不安定版
#http://wiki.debian.org/AptPreferences
deb http:// ftp.us.debian.org/debian/unstable main 
 deb-src http://ftp.us.debian.org/debian/unstable main 
 
#non free ex 。 Sun Java 
#deb http://ftp.us.debian.org/debian/ squeeze non-free 
#deb-src http://ftp.us.debian.org/debian/ non-freeを絞る
  • 編集etc/apt/preferencesピン留めファイル-ファイルが存在しない場合は作成します。
#パッケージのピン留めの優先度
#http://wiki.debian.org/AptPreferencesおよびhttp://manpages.debian.net/cgi-bin/man.cgi?query=apt_preferences [を参照.____。]#
#ナットシェルで最も高いPINがインストールされます
#
#ピン接続のデフォルトは次のとおりです。これらは設定に加えて次のとおりです。
#990-インストールされていないが、 `APT :: Default-Relase" stable "`設定に属しているバージョンの場合。
#500-インストールされておらず、ターゲットに属していないバージョンの場合release 
#100-すでにインストールされているパッケージの場合、これは同じパッケージの他のバージョンも意味します
#1-実験的パッケージの場合。 「NotAutomatic:yes」のパッケージ
#
#当社のピンニング
#400-他のパッケージを更新する必要なく安全にインストールできるバックポート
#50-不安定なパッケージ、詳細画面で強制的にインストールすると、競合が発生する可能性があります
 
パッケージ:* 
ピン:release n = squeeze-backports 
ピン優先度:400 
 
パッケージ:* 
ピン:リリースa = unstable 
  • '/ etc/apt/apt.conf.d/100guiconf'を作成し、ピン止め情報を表示するようにAptitudeを設定します。
 Aptitude :: UI :: Package-Display-Format "%c%a%M%p%Z%v%V%i"; 
4

パッケージの選択がより複雑であるか、インストールが複数のマシンで繰り返される場合は、公式リポジトリのサブセットをミラーリングするプライベートリポジトリを設定することを検討してください。これにはリポジトリを構成するための少しの作業が必要ですが、報酬は各クライアントの最小限の構成と数十のインストールを実行するときに再現可能な結果で維持するのが簡単です。これは、1つまたは2つのパッケージのみがインストールされている場合でも役立ちます。この方法を使用して、クラウドのインストールを自動化および維持します。安価なVPS上の単一のサーバーで、数十のプライベートリポジトリを処理できます。

プライベートリポジトリサーバーを設定するには:

# Install aptly.
apt-get install aptly

# Create local mirror (choose a source mirror near you).
aptly mirror create -filter="mirror-contains-no-packages" stretch-roundcube http://httpredir.debian.org/debian stretch main

# Configure filters for local mirror.
aptly mirror edit -filter="Name (% roundcube*)" stretch-roundcube

# Update local mirror.
aptly mirror update stretch-roundcube

# Drop previously published repositories and mirrors, if running these commands in a script.
aptly publish drop stretch

# Drop snapshot, if running these commands in a script.
aptly snapshot drop stretch-roundcube

# Create new snapshot.
aptly snapshot create stretch-roundcube from mirror stretch-roundcube

# Publish snapshot.
aptly publish snapshot -architectures=i386,AMD64 -distribution=stretch -component=roundcube -label="Your Name" -Origin="Your Name" stretch-roundcube

次に、選択したWebサーバーを構成して、静的リポジトリファイルを提供します。おそらくセキュリティ証明書と基本認証でリポジトリを保護します。

プライベートリポジトリを自動的に維持し、アップストリームから更新を取り込むには、上記をスクリプトに入れてcronジョブから実行します。

クライアントマシンを構成するには、クライアントマシンで次のようにします。

# Configure private repository without authentication.
echo 'deb http://private.repository.example.com/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list

# Configure private repository with authentication.
echo 'deb https://hostname:[email protected]/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list
apt-get install apt-transport-https

# Update.
apt-get update

# Install package.
apt-get install roundcube

クライアントマシンを維持し、プライベートリポジトリの更新をすべて取り込むには、クライアントマシンで次の手順を実行します。

# Update.
apt-get update

# Upgrade.
apt-get upgrade
2
Monica For CEO

別のオプションは、代わりにテストからソースパッケージをダウンロードすることです。 APTは、ダウンロード後にソースパッケージを自動ビルドできます。これにより、安定したパッケージはテストのアップデートの影響を受けなくなります。唯一のトレードオフは、ダウンロードするよりも時間がかかることです。そして、バイナリパッケージをインストールします。

テストからソースパッケージをダウンロードするようにAPTを構成するには、以下を追加します。

deb-src http://<your debian mirror here> testing main

現在のテストのみを行い、将来のテストは行いたくない場合は、「testing」を現在のコード名に置き換えます(これを書いている時点では「バスター」です)。

1
temy