标签 SDK 下的文章

你是否是一个经常在不同的 SDK 下安装和测试应用的开发者?我有一个好消息要告诉你!给你介绍一下 SDKMAN,一个可以帮你轻松管理多个 SDK 的命令行工具。它为安装、切换、列出和移除 SDK 提供了一个简便的方式。有了 SDKMAN,你可以在任何类 Unix 的操作系统上轻松地并行管理多个 SDK 的多个版本。它允许开发者为 JVM 安装不同的 SDK,例如 Java、Groovy、Scala、Kotlin 和 Ceylon、Ant、Gradle、Grails、Maven、SBT、Spark、Spring Boot、Vert.x,以及许多其他支持的 SDK。SDKMAN 是免费、轻量、开源、使用 Bash 编写的程序。

安装 SDKMAN

安装 SDKMAN 很简单。首先,确保你已经安装了 zipunzip 这两个应用。它们在大多数的 Linux 发行版的默认仓库中。
例如,在基于 Debian 的系统上安装 unzip,只需要运行:

$ sudo apt-get install zip unzip

然后使用下面的命令安装 SDKMAN:

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

在安装完成之后,运行以下命令:

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

如果你希望自定义安装到其他位置,例如 /usr/local/,你可以这样做:

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

确保你的用户有足够的权限访问这个目录。

最后,在安装完成后使用下面的命令检查一下:

$ sdk version
==== BROADCAST =================================================================
* 01/08/18: Kotlin 1.2.60 released on SDKMAN! #kotlin
* 31/07/18: Sbt 1.2.0 released on SDKMAN! #sbt
* 31/07/18: Infrastructor 0.2.1 released on SDKMAN! #infrastructor
================================================================================

SDKMAN 5.7.2+323

恭喜你!SDKMAN 已经安装完成了。让我们接下来看如何安装和管理 SDKs 吧。

管理多个 SDK

查看可用的 SDK 清单,运行:

$ sdk list

将会输出:

================================================================================
Available Candidates
================================================================================
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

就像你看到的,SDK 每次列出众多 SDK 中的一个,以及该 SDK 的描述信息、官方网址和安装命令。按回车键继续下一个。

安装一个新的 SDK,例如 Java JDK,运行:

$ sdk install java

将会输出:

Downloading: java 8.0.172-zulu

In progress...

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

Repackaging Java 8.0.172-zulu...

Done repackaging...

Installing: java 8.0.172-zulu
Done installing!

Setting java 8.0.172-zulu as default.

如果你安装了多个 SDK,它将会提示你是否想要将当前安装的版本设置为 默认版本。回答 Yes 将会把当前版本设置为默认版本。

使用以下命令安装一个 SDK 的其他版本:

$ sdk install ant 1.10.1

如果你之前已经在本地安装了一个 SDK,你可以像下面这样设置它为本地版本。

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

列出一个 SDK 的多个版本:

$ 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
================================================================================

像我之前说的,如果你安装了多个版本,SDKMAN 会提示你是否想要设置当前安装的版本为 默认版本。你可以回答 Yes 设置它为默认版本。当然,你也可以在稍后使用下面的命令设置:

$ sdk default ant 1.9.9

上面的命令将会设置 Apache Ant 1.9.9 为默认版本。

你可以根据自己的需要选择使用任何已安装的 SDK 版本,仅需运行以下命令:

$ sdk use ant 1.9.9

检查某个具体 SDK 当前的版本号,例如 Java,运行:

$ sdk current java
Using java version 8.0.172-zulu

检查所有当下在使用的 SDK 版本号,运行:

$ sdk current

Using:

ant: 1.10.1
java: 8.0.172-zulu

升级过时的 SDK,运行:

$ sdk upgrade scala

你也可以检查所有的 SDK 中还有哪些是过时的。

$ sdk upgrade

SDKMAN 有离线模式,可以让 SDKMAN 在离线时也正常运作。你可以使用下面的命令在任何时间开启或者关闭离线模式:

$ sdk offline enable
$ sdk offline disable

要移除已安装的 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

如果有可用的新版本,可以使用下面的命令安装:

$ 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,找到并删除下面这几行。

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

如果你使用的是 ZSH,就从 .zshrc 中删除上面这一行。

这就是所有的内容了。我希望 SDKMAN 可以帮到你。还有更多的干货即将到来。敬请期待!

祝近祺!

:)


via: https://www.ostechnix.com/sdkman-a-cli-tool-to-easily-manage-multiple-software-development-kits/

作者:SK 选题:lujun9972 译者:dianbanjiu 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

2013 – What A Year, Right?

2013 - 怎样的一年呢?

去年的这个时候我们还对 Ubuntu Touch 一无所知;Canonical试图募集3200万美金研发高端智能手机,这本来听起来是多么的疯狂啊;Mir还是太空站,而 Wayland 面向未来;至于 Ubuntu的下两个版本,Saucy Salamanders 和 Trusty Tahrs,虽然它们还没影子,但是一切总在按部就班中进行。

今年是繁忙的一年。虽然有约2500万人继续使用普通桌面版以满足日常工作需要,Canonical仍继续大步迈向融合未来的操作系统。

两者的关键是在APP上。在上一年我们盘点了10大最受欢迎的桌面软件。今年我们做了一些小小的改动,也包括这一年内发布更新的APP。

我们会排除一些‘显而易见’的APP,比如Firefox,Chrome,LibreOffice和Steam (因为我们都知道它们是多么的强大啊)来突出在今年使桌面体验更加完善,而又不太知名的应用程序和实用工具。

我们挑选了哪些呢?往下看吧。

Geary

2013见证了Yorba,那个Geary背后的非营利组织,尝试通过群众募集来保证Geary的未来,却募集失败了。这可能会让这个APP终结;好多APP并没有展现它们真正的潜能,却只能淹没在历史的尘埃中。庆幸的是,Geary依然还在!

在令人失望的计划后几个月,Geary 0.4.x 发布,这证明了这个开发团队的奉献精神和耐心。从今年早先时候的一个重要版本的发布,到十月Geary 0.4推出,它提升了稳定性和性能,同时增强了功能。

那些坚持认为桌面邮件客户端时代已终结的人们不得不被Yorba折服,承认了错误。现在,Geary在Linux和其他各大平台都是最好的邮件软件之一。

Birdie 推特APP

在Linux平台上的推特APP总有些异常。虽然有大量的推特APP,但很少能像在其他操作系统的专有APP那样运行稳定。而当Birdie在今年的三月份发布时,一切都改变了。一年过去了,我们亲眼看到它的成长,从起初不稳定,怨声载道地‘小鸡’成长为一个真正成熟和自信的应用程序。

虽然它仍是只羽翼未满的小雏,但它在这仍有一席之地,因为它知道自己的目标,翱翔蓝天,未来铁翅横空。

Springseed

对笔记使用者来说,2013年笔记工具的选择可不少 --从 GNOME下的Bijiben(译注:笔记本!)到强大的Nitro。但是对于我来说,小工具Springseed更引起了我的关注。

围绕着易用性的开发,APP响应更迅速界面更加清新。特性中包含实现条理化所需的所有至关重要的功能 - 创建笔记,文本排版,markdown的支持和同步dropbox,等等 - 所有都呈现在一个迷人的界面中,不带任何繁琐而不必要的东西。

Springseed是一款免费而且开源的软件,能从官方项目网站中直接下载。

Unity Tweak Tool

自从年初发布第一个版本,Unity Tweak Tool已成为’必备’的APP之一,使那些提供Ubuntu后安装建议的人无言以对。用自行设置和定制化工具,可轻而易举的量身定制符合自己习惯的 Unity 体验。

定期更新,利用每一个新的Ubuntu版本能支持的最新选项,并提供安全的取消按钮‘undo’来取消操作,也就很容易理解为什么该APP已成为众多人喜爱的工具了。

Intel 显卡驱动安装程序

Intel (尤其是 Intel的开源技术中心)使得用今年发布的 Intel 显卡驱动管理程序,使得在Linux下安装最新最好的Intel显卡驱动更加方便。程序能为用户实现自动检测,下载和安装,你只需要轻点几下鼠标和一点点耐心。

最初的版本不是没有问题。幸好,随后的版本已经修补了Bug和其他一些稀奇古怪的问题。如果你在今年早些时候尝试时没有成功,那么现在你值得再试一下。

Ubuntu SDK

这是一个独具一格且重要的选择。今年发布的Ubuntu SDK具备了Ubuntu开发者在手机和平板电脑为 Ubuntu Touch 开发APP 所需的一切。

这虽然不会让多数桌面用户使用到,但是在七月的更新特别的加入了一些强大的功能 - 包含一个统一行为的API,能与Ubuntu One数据库同步,支持创建聚合式布局等。

VoD Enablement App

这个条目与其说是一个APP,还不如说作为一个黑客的智慧结晶。无论如何,幸亏有聪明的Erich Hoover,让Netflix,LoveFilm和其他许多基于Silverlight视频流的站点现在首次能在Ubuntu下轻松的观看 - 当然,尽管是非正式的!

你可以阅览我们一月份以后的文章,了解它支持什么,如何安装,以及如何观看。

VLC

这个也许是每个人(也许有人说,不是我喜爱的)都喜爱的媒体播放器在2013进行了大量的更新,并在九月完成了最主要更新。

在其Linux版本的一系列特性和改进中,包括支持4k的视频流;VDPAU硬件解码;.MKV文件回放按钮和改进DBus和MPRIS接口等。

Lightworks for Linux

Lightworks颇富盛名,奇特而又卓越:有许多特色,强大的功能,面向专业人士,对于多数桌用户来说是不可或缺的利器。无可否认拥有这个APP多么让人震惊啊(常用于编辑一些奥斯卡获奖电影和知名唱片)。

该APP幕后公司 Editshare 发布了Linux测试版(虽然有特殊事件延时了发布时间)。但是,自从在四月份发布,他们严格确保维持特性能与Windows版本相差不大 - 这个壮举会在之后的更新中实现。

目前,新的特性和调整会在这个星期到来,对于那些幻想自己是下一个伟大的电影制造者,没有比这更好工具了,尝试一下吧。

GNOME Music 预览

好吧,好吧:这还没竣工呢。事实上,如果你没有运行高度不稳定的GNOME PPAs,你甚至不可能在Ubuntu下用这个。

但这无关紧要;我认为GNOME Music是本年度突出的Apps之一. 有些人认为其简单无为,而另一些人则认为小即是美。当然,该APP和做“所有事”的Apps不能相比,但那也偏离了初衷。

它在注重设计细节和用户体验方面是首屈一指的。


via: http://www.omgubuntu.co.uk/2013/12/top-10-linux-apps-of-2013

译者:Luoxcat 校对:jasminepeng

本文由 LCTT 原创翻译,Linux中国 荣誉推出