GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでSDKMANを使用して複数のソフトウェア開発キットを管理する

さまざまなSDKでアプリケーションをテストすることが多い開発者ですか?良いニュースがあります! SDKMAN Linuxで複数のソフトウェア開発キットを簡単に管理するのに役立つCLIツールです。候補をインストール、切り替え、一覧表示、削除するための便利な方法を提供します。 SDKMANを使用すると、複数のSDKの並列バージョンを簡単に管理できます。これにより、開発者はJava、Groovy、Scala、Kotlin、CeylonなどのJVM用のソフトウェア開発キットをインストールできます。 Ant、Gradle、Grails、Maven、SBT、Spark、Spring Boot、Vert.xなどもサポートされています。 SDKMANは、 Bashで記述された無料の軽量なオープンソースユーティリティです。 。

LinuxにSDKMANをインストールする

SDKMANのインストールは簡単です。まず、 zipがインストールされていることを確認します および解凍 アプリケーション。ほとんどのLinuxディストリビューションのデフォルトのリポジトリで利用できます。たとえば、Debianベースのシステムにunzipをインストールするには、次のコマンドを実行するだけです。

$ sudo apt-get install zip unzip

次に、コマンドを使用してSDKMANをインストールします。

$ curl -s "https://get.sdkman.io" | bash

とても簡単です。このコマンドは、SDKMANを $ HOME / .sdkmanにインストールします 場所。

出力例:

                                -+syyyyyyys:
                            `/yho:`       -yd.
                         `/yh/`             +m.
                       .oho.                 hy                          .`
                     .sh/`                   :N`                `-/o`  `+dyyo:.
                   .yh:`                     `M-          `-/osysoym  :hs` `-+sys:      hhyssssssssy+
                 .sh:`                       `N:          ms/-``  yy.yh-      -hy.    `.N-````````+N.
               `od/`                         `N-       -/oM-      ddd+`     `sd:     hNNm        -N:
              :do`                           .M.       dMMM-     `ms.      /d+`     `NMMs       `do
            .yy-                             :N`    ```mMMM.      -      -hy.       /MMM:       yh
          `+d+`           `:/oo/`       `-/osyh/ossssssdNMM`           .sh:         yMMN`      /m.
         -dh-           :ymNMMMMy  `-/shmNm-`:N/-.``   `.sN            /N-         `NMMy      .m/
       `oNs`          -hysosmMMMMydmNmds+-.:ohm           :             sd`        :MMM/      yy
      .hN+           /d:    -MMMmhs/-.`   .MMMh   .ss+-                 `yy`       sMMN`     :N.
     :mN/           `N/     `o/-`         :MMMo   +MMMN-         .`      `ds       mMMh      do
    /NN/            `N+....--:/+oooosooo+:sMMM:   hMMMM:        `my       .m+     -MMM+     :N.
   /NMo              -+ooooo+/:-....`...:+hNMN.  `NMMMd`        .MM/       -m:    oMMN.     hs
  -NMd`                                    :mm   -MMMm- .s/     -MMm.       /m-   mMMd     -N.
 `mMM/                                      .-   /MMh. -dMo     -MMMy        od. .MMMs..---yh
 +MMM.                                           sNo`.sNMM+     :MMMM/        sh`+MMMNmNm+++-
 mMMM-                                           /--ohmMMM+     :MMMMm.       `hyymmmdddo
 MMMMh.                  ````                  `-+yy/`yMMM/     :MMMMMy       -sm:.``..-:-.`
 dMMMMmo-.``````..-:/osyhddddho.           `+shdh+.   hMMM:     :MmMMMM/   ./yy/` `:sys+/+sh/
 .dMMMMMMmdddddmmNMMMNNNNNMMMMMs           sNdo-      dMMM-  `-/yd/MMMMm-:sy+.   :hs-      /N`
  `/ymNNNNNNNmmdys+/::----/dMMm:          +m-         mMMM+ohmo/.` sMMMMdo-    .om:       `sh
     `.-----+/.`       `.-+hh/`         `od.          NMMNmds/     `mmy:`     +mMy      `:yy.
           /moyso+//+ossso:.           .yy`          `dy+:`         ..       :MMMN+---/oys:
         /+m:  `.-:::-`               /d+                                    +MMMMMMMNh:`
        +MN/                        -yh.                                     `+hddhy+.
       /MM+                       .sh:
      :NMo                      -sh/
     -NMs                    `/yy:
    .NMy                  `:sh+.
   `mMm`               ./yds-
  `dMMMmyo:-.````.-:oymNy:`
  +NMMMMMMMMMMMMMMMMms:`
    -+shmNMMMNmdy+:`


                                                                 Now attempting installation...


Looking for a previous installation of SDKMAN...
Looking for unzip...
Looking for zip...
Looking for curl...
Looking for sed...
Installing SDKMAN scripts...
Create distribution directories...
Getting available candidates...
Prime the config file...
Download script archive...
######################################################################## 100.0%
Extract script archive...
Install scripts...
Set version to 5.8.3+506 ...
Attempt update of interactive bash profile on regular UNIX...
Added sdkman init snippet to /home/ostechnix/.bashrc
Attempt update of zsh profile...
Updated existing /home/ostechnix/.zshrc

All done!

Please open a new terminal, or run the following in the existing one:

    source "/home/ostechnix/.sdkman/bin/sdkman-init.sh"

Then issue the following command:

    sdk help

Enjoy!!!

インストールが完了したら、次のコマンドを実行してSDKMANを初期化します。

$ source "$HOME/.sdkman/bin/sdkman-init.sh"

$ HOME / .sdkman以外の任意のカスタムの場所にインストールする場合 、たとえば / usr / local / 、実行:

$ export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash

ユーザーがこのフォルダに対するフルアクセス権を持っていることを確認してください。

最後に、次のコマンドを使用してインストールが成功したかどうかを確認します。

$ sdk version

出力例:

==== BROADCAST =================================================================
* 2020-06-27: sbt 1.3.13 released on SDKMAN! #scala
* 2020-06-26: Micronaut 2.0.0 released on SDKMAN! #micronautfw
* 2020-06-22: Micronaut 2.0.0.RC2 released on SDKMAN! #micronautfw
================================================================================

SDKMAN 5.8.3+506

おめでとう! SDKMANがインストールされました。先に進んで、SDKをインストールして管理する方法を見てみましょう。

SDKMANを使用して複数のソフトウェア開発キットを管理する

利用可能なすべてのソフトウェア開発キット(SDK)を一覧表示する

利用可能なすべての候補(SDK)のリストを表示するには、次のコマンドを実行します。

$ sdk list

出力例:

================================================================================
q-quit                                  /-search down
j-down                                  ?-search up
k-up                                    h-help

--------------------------------------------------------------------------------
Ant (1.10.1)                                             https://ant.apache.org/

Apache Ant is a Java library and command-line tool whose mission is to drive
processes described in build files as targets and extension points dependent
upon each other. The main known usage of Ant is the build of Java applications.
Ant supplies a number of built-in tasks allowing to compile, assemble, test and
run Java applications. Ant can also be used effectively to build non Java
applications, for instance C or C++ applications. More generally, Ant can be
used to pilot any type of process which can be described in terms of targets and
tasks.

                                                               $ sdk install ant
--------------------------------------------------------------------------------
AsciidoctorJ (2.3.1)                                     http://asciidoctor.org/

AsciidoctorJ is the official library for running Asciidoctor on the JVM. Using
AsciidoctorJ, you can convert AsciiDoc content or analyze the structure of a
parsed AsciiDoc document from Java and other JVM languages.

:

ご覧のとおり、SDKMANは、候補の説明、公式Webサイト、およびインストールコマンドとともに、一度に1つの候補を一覧表示します。 ENTERキーを押して、次の候補を一覧表示します。閉じるには、 qを押します 。

新しいSDKをインストールする

Java JDKなどのSDKをインストールするには、次のコマンドを実行します。

$ sdk install java

出力例:

Downloading: java 11.0.7.hs-adpt

In progress...

################################################################################################################################################################### 100.0%################################################################################################################################################################### 100.0%

Repackaging Java 11.0.7.hs-adpt...

Done repackaging...

Installing: java 11.0.7.hs-adpt
Done installing!

Setting java 11.0.7.hs-adpt as default.

Javaをインストールしました。バージョンを確認しましょう:

$ java --version
openjdk 11.0.7 2020-04-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.7+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.7+10, mixed mode)

すでに複数のSDKが存在する場合は、現在インストールされているバージョンをデフォルトとして設定するかどうかを確認するメッセージが表示されます。 。 はいに答える 現在インストールされているバージョンをデフォルトとして設定します。

特定のバージョンのSDKをインストールする

SDKの特定のバージョンをインストールするには、次の手順を実行します。

$ sdk install ant 1.10.1

上記のコマンドは、Antバージョン1.10.1をインストールします。

特定の候補者のローカルインストールがすでにある場合は、以下のようにローカルバージョンとして設定できます。

$ sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT

候補バージョンの一覧表示

特定の候補バージョンを一覧表示するには:

$ sdk list ant

出力例:

================================================================================
Available Ant Versions
================================================================================
> * 1.10.1 
1.10.0 
1.9.9 
1.9.8 
1.9.7 

================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

上記の出力でわかるように、ant1.10.1には接頭辞">"と"*"が付いています。ここで、>はこのバージョンが現在使用中であることを示し、*はデフォルトバージョンであることを示します。

デフォルトのSDKを設定

すでに述べたように、複数のバージョンをインストールした場合、SDKMANは、現在インストールされているバージョンをデフォルトとして設定するかどうかを確認するメッセージを表示します。 。 「はい」と答えると、デフォルトとして設定できます。また、次のコマンドを使用して、後でそれを行うことができます:

$ sdk default ant 1.9.9

上記のコマンドは、ApacheAntバージョン1.9.9をデフォルトとして設定します。

現在のシェルに特定のSDKを使用する

現在のシェルで使用する特定の候補バージョンを選択できます。

$ sdk use ant 1.9.9

これにより、特定のバージョンが現在のセッションでのみ使用されるようになることに注意してください。永続的にするには、上記のように「デフォルト」コマンドを使用します。

現在使用中のバージョンを表示

Javaなど、候補に現在使用されているものを確認するには、次のコマンドを実行します。

$ sdk current java

Using java version 8.0.172-zulu

Javaなど、すべての候補で現在使用されているものを確認するには、次のコマンドを実行します。

$ sdk current

Using:

ant: 1.10.1
java: 8.0.172-zulu

アップグレード候補

古い候補をアップグレードするには、次のようにします。

$ sdk upgrade scala

また、すべての候補者の古いものを確認することもできます。

$ sdk upgrade

オフラインモード

SDKMANには、オフラインで作業しているときにSDKMANが機能できるようにするオフラインモード機能があります。次のコマンドを使用して、いつでもオフラインモードを有効または無効にできます。

$ sdk offline enable
$ sdk offline disable

インストールされているSDKの削除

インストールされているSDKを削除するには、次のコマンドを実行します。

$ sdk uninstall ant 1.9.9

助けを得る

ヘルプセクションを表示するには、次を実行します:

$ sdk help

Usage: sdk <command> [candidate] [version]
sdk offline <enable|disable>

commands:
install or i <candidate> [version]
uninstall or rm <candidate> <version>
list or ls [candidate]
use or u <candidate> [version]
default or d <candidate> [version]
current or c [candidate]
upgrade or ug [candidate]
version or v
broadcast or b
help or h
offline [enable|disable]
selfupdate [force]
update
flush <broadcast|archives|temp>

candidate : the SDK to install: groovy, scala, grails, gradle, kotlin, etc.
                 use list command for comprehensive list of candidates
                 eg: $ sdk list

version : where optional, defaults to latest stable if not provided
             eg: $ sdk install groovy

SDKMANの更新

次のコマンドは、可能な場合は新しいバージョンのSDKMANをインストールします。

$ sdk selfupdate

SDKMANは定期的に更新を確認し、更新方法の説明を通知します。

WARNING: SDKMAN is out-of-date and requires an update.

$ sdk update
Adding new candidates(s): scala

キャッシュを削除

ダウンロードしたSDKバイナリを含むキャッシュを時々クリーンアップすることをお勧めします。これを行うには、次のコマンドを実行します:

$ sdk flush archives

スペースを節約するために一時フォルダをクリーンアップすることもお勧めします:

$ sdk flush temp

SDKMANをアンインストールする

SDKMANが不要な場合、または気に入らない場合は、以下に示すように削除してください。

$ tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman
$ rm -rf ~/.sdkman

最後に、 .bashrcを開きます (または .bash_profile または.profile )ファイル:

$ nano ~/.bashrc

次の行を見つけて削除します。

#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/home/ostechnix/.sdkman"
[[ -s "/home/ostechnix/.sdkman/bin/sdkman-init.sh" ]] && source "/home/ostechnix/.sdkman/bin/sdkman-init.sh"

ZSHを使用する場合は、上記の行を .zshrcから削除してください。 ファイル。

関連記事:

  • LinuxでjEnvを使用して複数のJavaバージョンを管理する方法
  • LinuxでPyenvを使用して複数のPythonバージョンを管理する方法

Linux
  1. Stratisを使用してコマンドラインからLinuxストレージを管理する

  2. LinuxでLogrotateを使用してログファイルを管理する方法

  3. LinuxでPyenvを使用して複数のPythonバージョンを管理する方法

  1. Linuxのトップ5開発環境

  2. Cygwin を使用して Windows から Linux 上のソフトウェア インストーラーを起動する

  3. 3 つの方法を使用して Linux で複数のファイルの名前をまとめて変更する方法

  1. LinuxでのLogrotateの使用ログファイルの管理(例を含む)

  2. Linux で ip コマンドの例を使用して複数のルートを追加する方法

  3. シート フィーダーを使用して複数のページをスキャンする Linux ソフトウェアをお勧めしますか?