Ubuntuでは、udate-alternativeのコンフィギュレーションソフトウェアの多バージョンを採用しています。

4201 ワード

オリジナル-転載は明記してください。http://tramp.cincout.cn/2017/09/27/linux-2017-09-27-debian-update-alternatives/
要約Debianシステムでは、例えばUbuntuには、1つのソフトウェアが複数のバージョンまたはカテゴリをインストールする必要があり、使用時に便利な切り替えができる。update-alternativesは、システムコマンド接続子をDebianシステムで維持するためのツールである。一定の設定により、最新のソフトウェアバージョンまたは最適なソフトウェアカテゴリを自動的に選択することができます。例えば、メンテナンスシステムの複数のJDKのバージョン。メンテナンスeditorコマンドに対応する編集ツールはvimまたはemacsです。
紹介を命じる
基本的なコマンド形式Ubuntuの端末にman update-alternativesを入力すると、このコマンドの詳細な使用情報が確認されます。
コマンドの基本書式:
update-alternatives [option...] command
installコマンドinstallコマンドは、新しいシステムコマンドコネクタのセットを追加するために使用されます。
update-alternatives --install link name path priority [--slave link name path]...
sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk-9/bin/java 1702 
  • linkシステムでは同じ機能のソフトの共通リンクディレクトリです。たとえば/usr/bin/java
  • nameコマンドコネクタalternativesディレクトリの名前
  • pathは、/usr/local/java/jdk-9/bin/java
  • などのリンクされたソフトウェアのディレクトリを必要とする。
  • プリオリティ優先度は、数値が大きいほど優先度が高いです。alternativeautoモードであるとき、システムは、優先度の高いソフトウェア
  • を自動的に選択する。
  • slaave slaveによって作成されたリンクは、ある主リンクに属する。
  • コマンドを表示
    ディsplayupdate-alternatives --display nameは、あるnameの含むリンクの詳細情報を示すために使用される。モード、優先度、および現在の最適なソフトウェアバージョンが含まれます。
    ~$ update-alternatives --display java
    java - manual mode
      link currently points to /usr/local/java/jdk1.8.0_111/bin/java
    /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java - priority 1071
      slave java.1.gz: /usr/lib/jvm/java-7-openjdk-amd64/jre/man/man1/java.1.gz
    /usr/local/java/jdk-9/bin/java - priority 1074
    /usr/local/java/jdk1.7.0_79/bin/java - priority 1072
    /usr/local/java/jdk1.8.0_111/bin/java - priority 1073
    Current 'best' version is '/usr/local/java/jdk-9/bin/java'.
    
    
    update-alternatives --queryはより友好的な形式で見られます。update-alternatives --listは、より簡潔な情報を示す。
    configコマンドconfigコマンドにより、相互作用の形でソフトウェアの切り替えができます。
    ~$ sudo update-alternatives --config java
    [sudo] password for zhaoyu: 
    There are 4 choices for the alternative java (providing /usr/bin/java).
    
      Selection    Path                                            Priority   Status
    ------------------------------------------------------------
      0            /usr/local/java/jdk-9/bin/java                   1074      auto mode
      1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
      2            /usr/local/java/jdk-9/bin/java                   1074      manual mode
      3            /usr/local/java/jdk1.7.0_79/bin/java             1072      manual mode
    * 4            /usr/local/java/jdk1.8.0_111/bin/java            1073      manual mode
    
    Press enter to keep the current choice[*], or type selection number: 
    
    
    上記のモードで、私達が切り替えたいソフトウェア番号を入力すればいいです。
    removeコマンドupdate-alternatives --remove name pathコマンドは、指定されたnameのいずれかのソフトウェアバージョンを除去するために使用されてもよい。たとえば:
    sudo update-alternatives --remove java /usr/local/java/jdk1.6.0_45/bin/java
    
    -- remove-all nameは、あるnameの下のすべてのソフトウェアを除去するために使用されてもよい。
    autコマンドupdate-alternatives --auto nameコマンドは、あるnameのソフトウェア管理モードを自動的に設定するために使用することができる。設定が完了すると、priorityに従ってバージョンの高いソフトウェアが選択されます。
    締め括りをつけるupdate-alternativesコマンドは、JDKのバージョン管理を容易にするために使用され、java javac javap jarなどのコマンドを含めて構成されてもよい。以下のとおりです
    sudo update-alternatives --install /usr/bin/javac javac /usr/local/jdk1.7.0_80/bin/javac 300
    
    この方法を用いてJDKを管理する場合、$JAVA_HOME PATHの構成に注意する必要がある。
    # java environment
    export JAVA_HOME=/usr/local/java/jdk1.8.0_111
    export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
    export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    
    まず$PATHを検索します。$JAVA_HOMEに対応する経路ではありません。(PATH=JAVAN HOME/bin)。
    参照
  • udate-alternative
  • Linux命令大全
  • Linux教程