Bagaimana saya bisa menentukan repositori tempat paket akan diinstal? (emacs-snapshot)

27

Saya ingin menginstal emacs-snapshot dari http://emacs.orebokech.com Tapi sudah ada emacs-snapshot di repositori Ubuntu.

Bagaimana saya bisa menentukan repositori tempat paket akan diinstal?

elviejo79
sumber

Jawaban:

19

Anda dapat menentukan repositori dengan -topsi. Sebagai contoh, saya telah menambahkan repositori berikut /etc/apt/sources.listuntuk menginstal rilis terbaru Iceweasel:

deb http://mozilla.debian.net/ squeeze-backports iceweasel-release

Seperti yang Anda ketahui ada paket yang sama iceweaseldi repositori resmi Debian. Jika saya ingin menginstal Iceweasel dari repo khusus ini saya jalankan:

apt-get install -t squeeze-backports iceweasel

dari halaman manual apt-get:

-t, --target-release, --default-release
           This option controls the default input to the policy engine, it creates a default pin at priority 990 using the specified
           release string. This overrides the general settings in /etc/apt/preferences. Specifically pinned packages are not affected by
           the value of this option. In short, this option lets you have simple control over which distribution packages will be retrieved
           from. Some common examples might be -t '2.1*', -t unstable or -t sid. Configuration Item: APT::Default-Release; see also the
           apt_preferences(5) manual page.

Saya pikir ini adalah solusi yang lebih baik,

Sumber dari: /ubuntu/27362/how-to-only-install-updates-from-a-specific-repository/57749#57749

hukko
sumber
ya solusi Anda lebih baik daripada milik saya.
elviejo79
1
Bagaimana jika Anda tidak ingin menambahkan sumber tersebut ke dalam sources.list Anda?
LittleNooby
12

Saya menemukan solusi. Pertama-tama saya perlu menemukan repositori yang memiliki pacakage:

$ apt-cache showpkg emacs-snapshot
Package: emacs-snapshot
Versions: 
1:20100111-1~lenny1 (/var/lib/apt/lists/emacs.orebokech.com_dists_lenny_main_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/emacs.orebokech.com_dists_lenny_main_binary-amd64_Packages
                  MD5: 906df684c212eabe267e6b5c2e8c2032

1:20090909-1 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_universe_binary-amd64_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_universe_binary-amd64_Packages
                  MD5: 906df684c212eabe267e6b5c2e8c2032


Reverse Depends: ...
...

Dalam Versi: bagian. Saya melihat versi yang berasal dari berbagai repositori:

  • 1: 20100111-1 ~ lenny1
  • 1: 20090909-1

Jadi sekarang kita hanya memberitahu apt atau aptitude untuk menginstal versi tertentu:

$ sudo aptitude install emacs-snapshot=1:20100111-1~lenny1

package-name = version_name

Kemenangan.

Saya masih tidak tahu cara menggunakan repositori tertentu. Tetapi dalam hal ini versi spesifik sudah cukup.

elviejo79
sumber
1

Ada file preferensi untuk apt. Saya pikir ini terletak di bawah / etc / apt, tetapi tidak 100% yakin. Di sana Anda dapat mengatur prioritas untuk paket dari repositori menjadi lebih tinggi daripada untuk paket yang sama dari repositori Ubunto. Untuk sintaks yang tepat, cari di man apt-get. Edit file, lalu instal seperti biasa dengan apt-get, itu akan diambil dari asal prioritas tertinggi. Pastikan sebelumnya bahwa paket dari repositori tersebut dikompilasi untuk distro Anda (misalnya biner debian dapat mencari dependensi di tempat yang salah) dan untuk versi kernel Anda (perubahan ini cukup sering sepanjang siklus hidup versi Ubuntu). Jika tidak, ini adalah masalah kesempatan jika itu akan berhasil.

rumtscho
sumber