Jak mogę określić repozytorium, z którego pakiet zostanie zainstalowany? (emacs-snapshot)

27

Chcę zainstalować migawkę emacs z http://emacs.orebokech.com Ale w repozytoriach Ubuntu jest już migawka emacs.

Jak mogę określić repozytorium, z którego pakiet zostanie zainstalowany?

elviejo79
źródło

Odpowiedzi:

19

Możesz określić repozytorium z -topcją. Jako przykład dodałem następujące repozytorium, /etc/apt/sources.listaby zainstalować najnowszą wersję Iceweasel:

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

Jak wiecie, iceweaselw oficjalnym repozytorium Debiana znajduje się ten sam pakiet . Jeśli chcę zainstalować Iceweasel z tego konkretnego repozytorium, uruchamiam:

apt-get install -t squeeze-backports iceweasel

ze strony podręcznika 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.

Myślę, że to lepsze rozwiązanie,

Źródło: /ubuntu/27362/how-to-only-install-updates-from-a-specific-repository/57749#57749

hukko
źródło
tak, twoje rozwiązanie jest lepsze niż moje.
elviejo79
1
Co zrobić, jeśli nie chcesz dodać wspomnianego źródła do swojej listy sources.list?
LittleNooby
12

Znalazłem obejście. Najpierw musiałem znaleźć repozytoria, które miały pakakage:

$ 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: ...
...

W wersjach: sekcji. Widzę wersje pochodzące z różnych repozytoriów:

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

Teraz mówimy po prostu apt lub aptitude, aby zainstalował tę konkretną wersję:

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

nazwa-pakietu = nazwa_wersji

Zwycięstwo.

Nadal nie wiem, jak korzystać z określonego repozytorium. Ale w tym przypadku wystarczyła konkretna wersja.

elviejo79
źródło
1

Istnieje plik preferencji dla apt. Myślę, że znajduje się pod / etc / apt, ale nie jestem w 100% pewien. Tam możesz ustawić priorytet dla pakietu z repozytorium na wyższy niż dla tego samego pakietu z repozytorium Ubunto. Dokładną składnię znajdziesz w man apt-get. Edytuj plik, a następnie zainstaluj jak zwykle za pomocą apt-get, pobierze go z źródła o najwyższym priorytecie. Po prostu upewnij się wcześniej, że pakiet z tego repozytorium jest skompilowany dla twojej dystrybucji (np. Plik binarny debian może szukać zależności w niewłaściwych miejscach) i dla twojej wersji jądra (zmienia się to dość często przez cały cykl życia wersji Ubuntu). W przeciwnym razie jest to kwestia przypadku, jeśli zadziała.

rumtscho
źródło