Les caractéristiques de chacun seront données sur une autre page.
Il existe un progiciel bio appelé Qiime, et il est difficile de l'installer vous-même. Je dois installer diverses commandes bio,
/ usr / local /
Si vous pouvez dire cela, vous ne voulez pas y toucher. De plus, je souhaite en ajouter un nouveau au serveur,
C'est comme ressentir
Avec les outils bio, il y a des tonnes de petites commandes et de scripts ajoutés.
Même si j'essaie de l'introduire, je vais épuiser divers nerfs.
S'il y a un conflit de nom de commande, gérer la liste installée cette fois, désinstaller, etc.
En outre, chacun d'eux m'a demandé de définir des variables d'environnement détaillées, et en un clin d'œil, . * Shrc
a été foiré.
Bien entendu, je veux un outil de changement d'environnement simple (y compris les variables d'environnement).
Vous pouvez changer de commande avec les types "virtualenv" et "pyenv-virtualenv", mais il est difficile de changer même les variables d'environnement. Au contraire, direnv
ne touche pas la partie gestion de la commande.
pyenv
(ʻanyenv`)pyenv shell
pour ignorer les variables d'environnement sur le shell. Pour qu'il soit coupé une fois le travail terminépython
(?)Sur la base du concept simple de ʻanyenv
direnv`, nous avons décidé d'installer et de construire l'environnement.
Ci-dessous, nous l'utiliserons comme exemple en supposant qu'un environnement isolé de Qiime-1.8.0 sera créé.
CentOS 6.6 (certains macs)
anyenv
pyenv
, plenv
, jenv
Pour l'instant, je n'ai besoin d'aucun autre * env
dans la pratique
python
$ mv .bashrc .bashrc~
$ mv .local .local.bak
.bashrc
est sale$ PYTHONPATH
va en lecture et se dirige vers ~ / .local
.S'il y a quelque chose dans le chemin de bibliothèque commun tel que .local
dans les vestiges du passé, il doit être rangé
python
$ export PERL5OPT= #<=Seulement nous avons besoin
$ git clone https://github.com/riywo/anyenv ~/.anyenv
$ export PATH=${HOME}/.anyenv/bin:$PATH
$ eval "$(anyenv init -)"
python
$ anyenv install pyenv
$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.anyenv/envs/pyenv/plugins/pyenv-virtualenv
$ eval "$(anyenv init -)" # exec $SHELL -l
$ pyenv install 2.7.3 # @mac: $ CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install 2.7.3
$ pyenv install 3.3.6
$ pyenv rehash
pip
utilisé pour diverses installationsSur mac, lors de l'installation de python
python
$ CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install 2.7.3
Si tu ne le fais pas, ça ne marchera pas
pyenv-virtualenv
Créer un environnement isolé à utiliser avec
Vous pouvez créer plusieurs environnements avec la même version de python
python
$ pyenv virtualenv 2.7.3 qiime
$ pyenv rehash
python
etc. requis pour Qiime-1.8.0 dans $ {HOME} /. Anyenv / envs / pyenv / versions / qiime
plenv
$ anyenv install plenv
$ plenv install 5.20.1
$ plenv shell 5.20.1
$ plenv install-cpanm
cpanm
est installé séparément
jenv
$ anyenv install jenv
$ alternatives --config java
Il y a 3 programmes'java'Fournir.
Sélectionnez la commande
-----------------------------------------------
1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java
+ 2 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
* 3 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
$ jenv add /usr/lib/jvm/jre-1.5.0-gcj
$ jenv add /usr/lib/jvm/jre-1.6.0-openjdk.x86_64
$ jenv add /usr/lib/jvm/jre-1.7.0-openjdk.x86_64
Si vous êtes un 'mac', utilisez'gnu screen 'et utilisez'zsh', vous voulez utiliser ʻanyenv` régulièrement.
python
% cd /etc
% sudo mv zshenv zshenv.bak
#% sudo mv zshenv zprofile
je dois faire
Si vous utilisez'gnu screen'avec'CentOS 'et que vous utilisez'zsh' et que vous souhaitez utiliser ʻanyenv` régulièrement
python
% cd /etc
% sudo mv zshrc zshrc.bak
Peut-être que je dois le faire (non vérifié).
direnv
Sans pour autant
python
$ wget -q https://storage.googleapis.com/golang/go1.4.linux-386.tar.gz
$ tar zxf go1.4.linux-amd64.tar.gz
$ mv go ../bin #Où vous voulez
$ cd ../bin/go
$ export GOROOT=$PWD
$ cd go/bin
$ export PATH=$PWD:$PATH
Si GOROOT
n'est pas défini, direnv
provoquera une erreur lors de la compilation.
python
$ git clone https://github.com/zimbatm/direnv
$ cd direnv
$ make install DESTDIR=/PATH/TO/DIR #Où vous voulez
$ eval "$(direnv hook bash)"
python
$ cat /PATH/TO/.envrc
export FOOBAR=foobar
$ cd /PATH/TO
direnv: loading .envrc
direnv: export + FOOBAR
Changer l'invite avec zsh
.envrc
export PROMPT='Qiime-1.8.0 $'
Je veux faire quelque chose, mais cela n'interprète pas les variables dans l'invite, et c'est misérable quand je passe à /
. Est-ce juste mon environnement?
Je ne veux pas mettre .envrc
dans /
,
Décrivez ce qui suit dans .bashrc
.bashrc
export PATH=${HOME}/.anyenv/bin:$PATH
eval "$(anyenv init -)"
eval "$(direnv hook bash)"
Inutile de dire que le chemin vers ʻanyenv,
direnv` est supposé passer.
Activer et installer explicitement uniquement dans ce shell, comme avec pyenv shell
Les commandes individuelles sont
python
$ ./configure --prefix=${HOME}/.anyenv/envs/pyenv/versions/qiime
Visez l'isolement en
Par «pyenv rehash» pour «pyenv», les commandes individuelles (comme le «ghc» installé, qui sera décrit séparément) sont également synchronisées avec «$ {HOME} /. Anyenv / envs / pyenv / shims».
python
$ cat ${PYENV_ROOT}/pyenv/shims/ghc
#!/usr/bin/env bash
set -e
[ -n "$PYENV_DEBUG" ] && set -x
program="${0##*/}"
if [ "$program" = "python" ]; then
for arg; do
case "$arg" in
-c* | -- ) break ;;
*/* )
if [ -f "$arg" ]; then
export PYENV_DIR="${arg%/*}"
break
fi
;;
esac
done
fi
export PYENV_ROOT="/PATH/TO/.anyenv/envs/pyenv"
exec "/PATH/TO/.anyenv/envs/pyenv/libexec/pyenv" exec "$program" "$@"
$ which ghc
~/.anyenv/envs/pyenv/shims/ghc
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.8.3
$ pyenv shell 3.3.6
$ ghc --version
pyenv: ghc: command not found
The `ghc' command exists in these Python versions:
qiime
La même chose était vraie pour «plenv». Que vous l'utilisiez ou non
Utilisation de la fonction de direnv
Par exemple, seul le répertoire dans lequel vous souhaitez utiliser Qiime-1.8.0
python
$ cat /PATH/TO/DIR/.envrc
export PYENV_VERSION=qiime
export JENV_VERSION=1.6.0.33
$ direnv allow
Si tu fais
python
$ pyenv versions
* system (set by PYENV_VERSION environment variable)
2.7.3
3.3.6
qiime
$ jenv versions
* system (set by JENV_VERSION environment variable)
1.5
1.5.0
1.6
1.6.0.33
1.7
1.7.0.71
(Omis)
Mais
python
$ cd /PATH/TO/DIR
direnv: loading .envrc
direnv: export ~JENV_VERSION ~PYENV_VERSION
$ pyenv versions
system
2.7.3
3.3.6
* qiime (set by PYENV_VERSION environment variable)
$ jenv versions
system
1.5
1.5.0
1.6
* 1.6.0.33 (set by JENV_VERSION environment variable)
1.7
1.7.0.71
(Omis)
Basculer vers
Bien sûr, il reste valide dans le répertoire descendant
Les commandes externes sont également commutées correctement. ex) blastall
python
$ which blastall
/home/XXXX/.anyenv/envs/pyenv/shims/blastall
$ blastall | head -2 | tail -1
blastall 2.2.26 arguments: # /usr/local/Version en bac
$ cd /PATH/TO/DIR
direnv: loading .envrc
direnv: export ~JENV_VERSION ~PYENV_VERSION
$ which blastall
/home/XXXX/.anyenv/envs/pyenv/shims/blastall
$ blastall | head -2 | tail -1
blastall 2.2.22 arguments: #Version souhaitée
$ cd ../
$ direnv: unloading
$ blastall | head -2 | tail -1
blastall 2.2.26 arguments:
C'est bien pour un usage personnel, mais il y a des cas où d'autres personnes sur le serveur veulent l'utiliser.
Ainsi, même si quelqu'un copie le .bashrc
ci-dessus tel quel, ʻanyenv ne fonctionne pas (
direnv fonctionne normalement comme une seule unité). Si cette "autre personne" est à un niveau où il peut personnellement installer et utiliser ʻanyenv
ou direnv
, eh bien, il s'en chargera, mais sinon.
.bashrc
eval "$(anyenv init -)"
Au lieu de l'incorporer tel quel, enregistrez le résultat de ʻeval "$ (anyenv init-)" séparément et
source dans le fichier
.bashrc` de la personne cible.
De cette façon, il se comporte comme prévu.
Recommended Posts