Qual é o equivalente ao yum-versionlock para o Ubuntu?

1

Eu preciso instalar o r-base 3.0.2 porque uma biblioteca necessária ainda não é compatível com o 3.0.3 (a mais recente).

Eu posso instalar a versão mais antiga do R assim:

sudo apt-get install r-base=3.0.2-1precise0

No entanto todas as dependências do r-base tentam e instalam com o 3.0.3

root@foo:~# apt-get install r-base=3.0.2-1precise0
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 r-base : Depends: r-recommended (= 3.0.2-1precise0) but 3.0.3-1precise0 is to be installed
E: Unable to correct problems, you have held broken packages.

Eu acho que posso instalar todas as dependências primeiro, mas há muitas delas.

  r-cran-boot r-cran-class r-cran-cluster r-cran-codetools r-cran-foreign r-cran-kernsmooth r-cran-lattice
  r-cran-mass r-cran-matrix r-cran-mgcv r-cran-nlme r-cran-nnet r-cran-rpart r-cran-spatial r-cran-survival
  r-recommended

Estou mais familiarizado com o Centos e o Yum.

Existe uma maneira de 'version lock' re todas as dependências serem 3.0.2 em vez de 3.0.3?

root@foo:~# apt-cache policy r-base
r-base:
  Installed: (none)
  Candidate: 3.0.3-1precise0
  Version table:
     3.0.3-1precise0 0
        500 http://cran.cnr.berkeley.edu/bin/linux/ubuntu/ precise/ Packages
     3.0.2-1precise0 0
        500 http://cran.cnr.berkeley.edu/bin/linux/ubuntu/ precise/ Packages
     3.0.1-6precise0 0
        500 http://cran.cnr.berkeley.edu/bin/linux/ubuntu/ precise/ Packages
     3.0.1-5precise0 0
        500 http://cran.cnr.berkeley.edu/bin/linux/ubuntu/ precise/ Packages
     3.0.1-3precise 0
        500 http://cran.cnr.berkeley.edu/bin/linux/ubuntu/ precise/ Packages
    
por spuder 17.03.2014 / 03:50

2 respostas

1

Há mais de uma maneira de eliminar esse gato, mas acho que o mais simples é usar preferências do apt para pin os pacotes R.

Crie um arquivo em /etc/apt/preferences.d contendo

Package: r-*
Pin: version 3.0.3-*
Pin-Priority: -1

Execute apt-get update ou aptitude update para levar em conta as alterações em /etc/apt/preferences ou /etc/apt/preferences.d .

Com a versão acima, qualquer versão do formulário 3.0.3-something de um pacote cujo nome começa com r- é forçada para uma prioridade de -1, o que significa "não instalar".

Outro método seria dar ao 3.0.2 uma prioridade tão alta que o apt passaria a degradar em direção a eles.

Package: r-*
Pin: version 3.0.2-*
Pin-Priority: 1001
    
por 18.03.2014 / 00:43
1

você pode fazer isso usando o comando:

sudo apt-get install r-recommended=3.0.2-1precise0  r-base=3.0.2-1precise0 

e qualquer dependência adicional feita da mesma maneira.

Outro método que você pode tentar:

Desative o repositório "Universe" e adicione o seguinte repositório (a versão mais recente é 3.0.2) para que você não tenha nenhum problema com.

sudo add-apt-repository ppa:marutter/rdev
sudo apt-get update 
sudo apt-get install r-base
    
por 17.03.2014 / 07:39