Debian sid から単一のパッケージをインストールするにはどうすればいいですか?

Debian sid から単一のパッケージをインストールするにはどうすればいいですか?

たとえば、squeeze リリースには存在しない ibus-sunpinyin を例に挙げます。システム全体を sid ブランチに切り替えるつもりはないので、sid リポジトリから単一のパッケージをダウンロードして、次のようにインストールします。

# Add the sid repository
sudo mv /tmp/sid.list /etc/apt/sources.list.d/

# Error: can't install because version conflicts of libc6:
#     sudo apt-get install ibus-sunpinyin

# This is ok but it will upgrade a lot of mess from sid branch:
#     sudo apt-get upgrade ibus-sunpinyin

# So, instead of apt-get install/upgrade, let me download & install the single package.
# However, this errored again because of version conflicts of libc6:
#      apt-get install --download-only ibus-sunpinyin

## THEN, WHAT CAN I DO? ##

# Remove the sid repository.
sudo mv /etc/apt/sources.list.d/sid.list /tmp

# Install the single package.
sudo dpkg -i ./ibus-sunpinyin-x.x.x.deb

答え1

sid リポジトリからソース パッケージをダウンロードし、squeeze システムでビルドすることもできます。依存関係が多数ある場合や、パッケージが squeeze で利用できないライブラリのバージョンに依存している場合は、問題が発生する可能性があります。

これが機能する場合は、ブートストラップ方式の場合のように、別のフォルダーに別のディストリビューションを管理する必要はありません。

答え2

本当に必要なのは、apt-pinning について学ぶことです。http://jaqque.sbih.org/kplug/apt-pinning.html

答え3

これを行う簡単な方法の 1 つは、システムがほとんどのパッケージに対して を使用し、不足しているパッケージに対してまたは にstableフォールバックするように設定することです。testingunstable

手順は次のとおりです。

  1. これを追加/etc/apt/sources.list:

    deb http://deb.debian.org/debian buster main
    deb http://deb.debian.org/debian testing main non-free contrib
    deb http://deb.debian.org/debian unstable main non-free contrib
    
  2. これを書き込む/etc/apt/preferences(またはファイルを作成する)

    Package: *
    Pin: release a=stable
    Pin-Priority: 700
    
    Package: *
    Pin: release a=testing
    Pin-Priority: 650
    
    Package: *
    Pin: release a=unstable
    Pin-Priority: 600
    
  3. 走るapt-get update

  4. 必要なパッケージをインストールします(例apt-get install ibus-sunpinyin:)

PS: インストールを強制することもできます不安定パッケージ付きapt-get install <package>/unstable

答え4

この問題を回避する 1 つの方法は、 を使用しcdebootstrapて基本的な sid システムをインストールし、 を使用してchroot新しいシステム内で必要なプログラムを実行することです。

cdebootstrap任意のディストリビューションから新しい Debian システムをディレクトリにインストールします。その後、chroot再起動などを行わずに、他のディストリビューションのプログラムを実行できます。

mount --bindまた、chroot されたシステムがホーム フォルダーや /proc などにアクセスできるようにするためにも使用できます。

chroot されたシステム内から、apt-get は sid リポジトリからインストールします。

より詳しい説明については、https://wiki.ubuntu.com/DebootstrapChroot

関連情報