Como posso especificar o repositório a partir do qual um pacote será instalado? (emacs-snapshot)


Respostas:


19

Você pode especificar um repositório com a -topção Como exemplo, eu adicionei o seguinte repositório /etc/apt/sources.listpara instalar o Iceweasel versão mais recente:

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

Como você sabe, existe um mesmo pacote iceweaselno repositório oficial da Debian. Se eu quiser instalar o Iceweasel neste repositório específico, eu corro:

apt-get install -t squeeze-backports iceweasel

da página de manual do 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.

Eu acho que essa é uma solução melhor,

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


Sim, sua solução é melhor que a minha.
elviejo79

1
E se você não quiser adicionar a fonte mencionada em seu sources.list?
precisa

12

Encontrei uma solução alternativa. Primeiro eu precisava encontrar os repositórios que tinham o 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: ...
...

Na seção Versões . Vejo as versões que vêm de diferentes repositórios:

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

Então agora dizemos ao apt ou aptitude para instalar essa versão específica:

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

package-name = version_name

Vitória.

Ainda não sei como usar um repositório específico. Mas, neste caso, uma versão específica foi suficiente.


1

Há um arquivo de preferências para o apt. Acho que está localizado em / etc / apt, mas não tenho 100% de certeza. Lá você pode definir a prioridade para um pacote de um repositório ser maior do que para o mesmo pacote do repositório Ubunto. Para a sintaxe exata, consulte man apt-get. Edite o arquivo e instale como de costume com o apt-get, ele buscará na origem de maior prioridade. Apenas certifique-se de antemão que o pacote desse repositório é compilado para sua distribuição (por exemplo, um binário debian pode procurar dependências nos lugares errados) e para a sua versão do kernel (isso muda frequentemente durante o ciclo de vida de uma versão do Ubuntu). Senão, é uma questão de chance se funcionar.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.