Removendo bibliotecas R em caminhos / usr / protegidos

0

Estou familiarizado com o Unix como um sistema operacional, mas não na lógica geral de como os desenvolvedores decidem organizar os locais das bibliotecas de aplicativos.

Tome R, por exemplo. Instalar o R no Ubuntu pode ser feito com o apt-get. Você receberá uma instalação no diretório:

/usr/local/R/lib/site-library         --> All R packages go here.
/usr/lib/R/library                    --> R packages go here.

Ambos os diretórios, por padrão, não são graváveis. Então, por que um padrão de instalação R é instalado lá?

Eu tive vários problemas ao instalar pacotes R no diretório "default" (que eu acho que é /usr/lib/R/library ?), então eu tive que instalá-los em um diretório local em ~/R/x86_64_pc-linux_gnu-library/3.2 .

A minha pergunta é : como me livrar de TODAS as bibliotecas "padrão" e SOMENTE uso o diretório da minha biblioteca local? Não apenas removendo bibliotecas padrão antigas, mas também informando que minha nova biblioteca padrão está em ~/R/x86_64_pc-linux_gnu-library/3.2 ?

    
por areyoujokingme 07.12.2015 / 21:20

2 respostas

2

Se você não quiser usar a versão empacotada de R, então você precisa instalar sua própria versão em um diretório privado de onde você a usará.

Também é possível criar pacotes do Ubuntu de bibliotecas R adicionais, para que elas sejam instaladas no sistema, se é isso que você quer.

    
por dobey 07.12.2015 / 21:52
1
% bl0ck_qu0te%

Os pacotes R padrão ( por exemplo, , base ) são instalados nessas bibliotecas do sistema, pois estão disponíveis para todos os usuários da máquina.

Embora não sejam graváveis por um usuário não raiz, isso ocorre por design. Um usuário instalaria seus pacotes adicionais em uma biblioteca pessoal.

Você pode ver o local padrão desta biblioteca pessoal executando Sys.getenv('R_LIBS_USER') no seu console R.

O comando .libPaths() permite visualizar o conjunto atual de caminhos de pesquisa da biblioteca, além de adicionar caminhos adicionais.

% bl0ck_qu0te%

Você não deseja "livrar-se" dessas bibliotecas padrão, pois elas contêm o conjunto padrão de pacotes R. Estes são necessários para R funcionar corretamente.

O R já conhece o local padrão da biblioteca pessoal (consulte .libPaths() ).

No entanto, você pode especificar para onde deseja instalar o pacote e carregá-los especificando um local de biblioteca:

install.packages('packageName', lib = Sys.getenv('R_LIBS_USER'))
library('packageName', lib.loc = Sys.getenv('R_LIBS_USER'))

Para controlar mais facilmente as versões do pacote R (o que é especialmente importante para pesquisas reproduzíveis), recomendo o pacote packrat . Ele pode ser usado para configurar uma biblioteca pessoal para cada um dos seus projetos, permitindo que cada projeto use seu próprio conjunto de pacotes ( i.e. , versões diferentes). Ao usar packrat , ele funciona automaticamente para que você não precise especificar os argumentos lib nor lib.loc ao instalar ou carregar pacotes.

    
por amc 14.06.2016 / 16:05