2015年11月

问题:我需要在我的 Linux 机器上编译 Java 程序。为此我已经安装了 JDK (Java Development Kit),而现在我正试图设置 JAVA\_HOME 环境变量使其指向安装好的 JDK 。关于在 Linux 上设置 JAVA\_HOME 环境变量,最受推崇的办法是什么?

许多 Java 程序或基于 Java 的集成开发环境 (IDE)都需要设置好 JAVA\_HOME 环境变量。该变量应指向 Java 开发工具包 (JDK)或 Java 运行时环境 (JRE)的安装目录。JDK 不仅包含了 JRE 提供的一切,还带有用于编译 Java 程序的额外的二进制代码和库文件(例如编译器,调试器及 JavaDoc 文档生成器)。JDK 是用来构建 Java 程序的,如果只是运行已经构建好的 Java 程序,单独一份 JRE 就足够了。

当您正试图设置 JAVA\_HOME 环境变量时,麻烦的事情在于 JAVA\_HOME 变量需要根据以下几点而改变:(1) 您是否安装了 JDK 或 JRE;(2) 您安装了哪个版本;(3) 您安装的是 Oracle JDK 还是 Open JDK。

因此每当您的开发环境或运行时环境发生改变(例如为 JDK 更新版本)时,您需要根据实际情况调整 JAVA\_HOME 变量,而这种做法是繁重且缺乏效率的。

以下 export 命令能为您自动设置 JAVA\_HOME 环境变量,而无须顾及上述的因素。

若您安装的是 JRE:

export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))

若您安装的是 JDK:

export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))

根据您的情况,将上述命令中的一条写入 ~/.bashrc(或 /etc/profile)文件中,它就会永久地设置好 JAVA\_HOME 变量。

注意,由于 java 或 javac 可以建立起多个层次的符号链接,为此"readlink -f"命令是用来获取它们真正的执行路径的。

举个例子,假如您安装的是 Oracle JRE 7,那么上述的第一条 export 命令将自动设置 JAVA\_HOME 为:

/usr/lib/jvm/java-7-oracle/jre

若您安装的是 Open JDK 第8版,那么第二条 export 命令将设置 JAVA\_HOME 为:

/usr/lib/jvm/java-8-openjdk-amd64

简而言之,这些 export 命令会在您重装/升级您的JDK/JRE,或更换默认 Java 版本时自动更新 JAVA\_HOME 变量。您不再需要手动调整它。


via: http://ask.xmodulo.com/set-java_home-environment-variable-linux.html

作者:Dan Nanni 译者:Ricky-Gong 校对:wxy

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

LastPass是一个跨平台的密码管理程序。在Linux平台中,它可作为Firefox, Chrome和Opera浏览器的插件使用。LastPass Sesame支持Ubuntu/Debian与Fedora系统。此外,LastPass还有安装在Firefox Portable的便携版,可将其安装在USB设备上。再加上适用于Ubuntu/Debian, Fedora和openSUSE的LastPass Pocket, 其具有良好的跨平台覆盖性。虽然LastPass备受好评,但它是一个专有软件。此外,LastPass最近被LogMeIn收购。如果你在找一个开源的替代品,这篇文章可能会对你有所帮助。

我们正面临着信息大爆炸。无论你是要在线经营生意,找工作,还是只为了休闲来进行阅读,互联网都是一个海量的信息源。在这种情况下,长期保留信息是很困难的。然而,及时地获取某些特定信息非常重要。密码就是这样的一个例子。

作为一个电脑用户,你可能会面临在不同服务或网站使用相同或不同密码的困境。这个事情非常复杂,因为有些网站会限制你对密码的选择。比如,一个网站可能会限制密码的最小位数,大写字母,数字或者特殊字符,这使得在所有网站使用统一密码变得不可能。更重要的是,不在不同网站中使用同一密码有安全方面的原因。这样就不可避免地意味着人们经常会有很多密码要记。一个解决方案是将所有的密码写下来。然而,这种做法也极度的不安全。

为了解决需要记忆无穷多串密码的问题,目前比较流行的解决方案是使用密码管理软件。事实上,这类软件对于活跃的互联网用户来说极为实用。它使得你获取、管理和安全保存所有密码变得极为容易,而大多数密码都是用软件或文件系统加密过的。因此,用户只需要记住一个简单的密码就可以获取到其它所有密码。密码管理软件鼓励用户对于不同服务去采用独一无二的,非直观的高强度的密码。

为了让大家更深入地了解Linux软件的质量,我将介绍4款优秀的、可替代LastPass的开源软件。

KeePassX

KeePassX

KeePassX是KeePass的多平台移植,是一款开源、跨平台的密码管理软件。这款软件可以帮助你以安全的方式保管密码。你可以将所有密码保存在一个数据库中,而这个数据库被一个主密码或密码盘来保管。这使得用户只需要记住一个单一的主密码或插入密码盘即可解锁整个数据库。

密码数据库使用AES(即Rijndael)或者TwoFish算法进行加密,密钥长度为256位。

该软件功能包括:

  • 管理模式丰富

    • 通过标题使每条密码更容易被识别

      • 可设置密码过期时间
      • 可插入附件
      • 可为不同分组或密码自定义标志
      • 在分组中对密码排序
  • 搜索功能:可在特定分组或整个数据库中搜索
  • 自动键入: 这个功能允许你在登录网站时只需要按下几个键。KeePassX可以帮助你输入剩下的密码。自动键入通过读取当前窗口的标题,对密码数据库进行搜索来获取相应的密码
  • 数据库安全性强,用户可通过密码或一个密钥文件(可存储在CD或U盘中)访问数据库(或两者)
  • 安全密码自动生成
  • 具有预防措施,获取用星号隐藏的密码并检查其安全性
  • 加密 - 用256位密钥,通过AES(高级加密标准)或TwoFish算法加密数据库,
  • 密码可以导入或导出。可从PwManager文件(.pwm)或KWallet文件(.xml)中导入密码,可导出为文本(*.txt)格式。

  • 软件官网:www.keepassx.org
  • 开发者:KeepassX Team
  • 软件许可证:GNU GPL V2
  • 版本号:0.4.3

Encryptr

Encryptr

Encryptr是一个开源的、零知识(zero-knowledge)的、基于云端的密码管理/电子钱包软件,以Crypton为基础开发。Crypton是一个Javascript库,允许开发者利用其开发应用来上传文件至服务器,而服务器无法知道用户所存储的文件内容。

Encryptr可将你的敏感信息,比如密码、信用卡数据、PIN码、或认证码存储在云端。然而,由于它基于零知识的Cypton框架开发,Encryptr可保证只有用户才拥有访问或读取秘密信息的权限。

由于其跨平台的特性,Encryptr允许用户随时随地、安全地通过一个账户从云端获取机密信息。

软件特性包括:

  • 使用非常安全的零知识Crypton框架,只在你的本地加密/解密数据
  • 易于使用
  • 基于云端
  • 可存储三种类型的数据:密码、信用卡账号以及通用的键值对
  • 可对每条密码设置“备注”项
  • 过滤和搜索密码
  • 对密码进行本地加密缓存,以节省载入时间

  • 软件官网: encryptr.org
  • 开发者: Tommy Williams
  • 软件许可证: GNU GPL v3
  • 版本号: 1.2.0

RatticDB

RatticDB

RatticDB是一个开源的、基于Django的密码管理服务。

RatticDB被设计为一个“密码生命周期管理工具”而不是单单一个“密码存储工具”。RatticDB致力于及时提醒用户哪些密码在何时需要更改。它不提供应用层面的密码加密。

软件特性包括:

  • 简洁的ACL设计
  • 可改变队列功能,可让用户知晓何时需要更改某应用的密码
  • 支持Ansible配置

  • 软件官网: rattic.org
  • 开发者: Daniel Hall
  • 软件许可证: GNU GPL v2
  • 版本号: 1.3.1

Seahorse

Seahorse

Seahorse是一个GnuPG(GNU隐私保护软件)的Gnome前端界面。它的目标是提供一个易于使用密钥管理工具,以及一个易于使用的界面来控制加密操作。

Seahorse是一个工具,用来提供安全传输和数据存储服务。数据加密和数字密钥生成操作可以轻易通过GUI来操作,密钥管理操作也可以轻易通过直观的界面来进行。

此外,Seahorse包含一个Gedit插件,可以使用鹦鹉螺文件管理器管理文件,一个管理剪贴板中事物的小程序,一个存储私密密码的代理,还有一个GnuPG和OpenSSH的密钥管理工具。

软件特性包括:

  • 对文本进行加密/解密/签名
  • 管理密钥及密钥环
  • 将密钥及密钥环与密钥服务器同步
  • 密码签名及发布
  • 将密码缓存起来,无需多次重复键入
  • 对密钥及密钥环进行备份
  • 可添加一个GDK支持格式的图片作为OpenGPG图片ID
  • 生成SSH密钥,对其进行验证及储存
  • 多语言支持

  • 软件官网: www.gnome.org/projects/seahorse
  • 开发者: Jacob Perkins, Jose Carlos, Garcia Sogo, Jean Schurger, Stef Walter, Adam Schreiber
  • 软件许可证: GNU GPL v2
  • 版本号: 3.18.0

via: http://www.linuxlinks.com/article/20151108125950773/LastPassAlternatives.html

译者:StdioA 校对:wxy

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

你曾经想过用安全 shell 挂载一个远程文件系统到本地吗?如果有的话,SSHfs 也许就是你所需要的。它通过使用 SSH 和 Fuse(LCTT 译注:Filesystem in Userspace,用户态文件系统,是 Linux 中用于挂载某些网络空间,如 SSH,到本地文件系统的模块) 允许你挂载远程计算机(或者服务器)到本地。

注意: 这篇文章假设你明白SSH 如何工作并在你的系统中配置 SSH

准备

在使用 SSHfs 挂载之前,需要进行一些设置 - 在你的系统上安装 SSHfs 以及 fuse 软件包。你还需要为 fuse 创建一个组,添加用户到组,并创建远程文件系统将会驻留的目录。

要在 Ubuntu Linux 上安装两个软件包,只需要在终端窗口输入以下命令:

sudo apt-get install sshfs fuse

ubuntu 安装 sshfs-fuse

如果你使用的不是 Ubuntu,那就在你的发行版软件包管理器中搜索软件包名称。最好搜索和 fuse 或 SSHfs 相关的关键字,因为取决于你运行的系统,软件包名称可能稍微有些不同。

在你的系统上安装完软件包之后,就该创建好 fuse 组了。在你安装 fuse 的时候,应该会在你的系统上创建一个组。如果没有的话,在终端窗口中输入以下命令以便在你的 Linux 系统中创建组:

sudo groupadd fuse

添加了组之后,把你的用户添加到这个组。

sudo gpasswd -a "$USER" fuse

sshfs 添加用户到组 fuse

别担心上面命令的 $USER。shell 会自动用你自己的用户名替换。处理了和组相关的工作之后,就是时候创建要挂载远程文件的目录了。

mkdir ~/remote_folder

在你的系统上创建了本地目录之后,就可以通过 SSHfs 挂载远程文件系统了。

挂载远程文件系统

要在你的机器上挂载远程文件系统,你需要在终端窗口中输入一段较长的命令。

sshfs -o idmap=user [email protected]:/remote/file/system/ ~/remote

sshfs 挂载文件系统到本地目录1

注意: 也可以通过 SSH 密钥文件挂载 SSHfs 文件系统。只需要在上面的命中用 sshfs -o IdentityFile=~/.ssh/keyfile, 替换 sshfs -o idmap=user 部分。

输入这个命令之后,会提示你输入远程用户的密码。如果登录成功了,你的远程文件系统就会被挂载到之前创建的 ~/remote_folder 目录。

sshfs挂载文件系统到本地目录2

使用完了你的远程文件系统,想要卸载它?容易吗?只需要在终端输入下面的命令:

sudo umount ~/remote_folder

这个简单的命令会断开远程连接同时清空 remote\_folder 目录。

总结

在 Linux 上有很多工具可以用于访问远程文件并挂载到本地。但是如之前所说,如果有的话,也只有很少的工具能充分利用 SSH 的强大功能。我希望在这篇指南的帮助下,也能认识到 SSHfs 是一个多么强大的工具。

你觉得 SSHfs 怎么样呢?在下面的评论框里告诉我们吧!


via: https://www.maketecheasier.com/sshfs-mount-remote-filesystem-linux/

作者:Derrik Diener 译者:ictlyh 校对:wxy

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

提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误。看上去像程序编译所使用的Java版本与我本地的不同。我该如何在Linux上切换默认的Java版本?

当Java程序编译时,编译环境会设置一个“target”变量来设置程序可以运行的最低Java版本。如果你Linux系统上运行的程序不能满足最低的JRE版本要求,那么你会在运行的时候遇到下面的错误。

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/xmodulo/hmon/gui/NetConf : Unsupported major.minor version 51.0

比如,程序在Java JRE 1.7下编译,但是系统只有Java JRE 1.6。

要解决这个问题,你需要改变默认的Java版本到Java JRE 1.7或者更高(假设JRE已经安装了)。

首先,试用下面的update-alternatives命令检查你系统上可用的Java版本

$ sudo update-alternatives --display java

本例中,总共安装了4个不同的Java版本:OpenJDK JRE 1.6、Oracle Java JRE 1.6、OpenJDK JRE 1.7 和 Oracle Java JRE 1.7。现在默认的Java版本是OpenJDK JRE 1.6。

如果没有安装需要的Java JRE,你可以参考这些指导来完成安装。

现在有可用的候选版本,你可以用下面的命令在可用的Java JRE之间切换默认的Java版本

$ sudo update-alternatives --config java

看到提示的时候,选择你想试用的Java版本。本例中,我们选择Oracle Java JRE 1.7。

现在用下面的命令验证默认的Java版本。

$ java -version

最后,如果你定义了JAVA\_HOME环境变量,根据你设置的Java版本更新变量。


via: http://ask.xmodulo.com/change-default-java-version-linux.html

作者:Dan Nanni 译者:geekpi 校对:wxy

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

从大多数消费者所关注的诸如 Ubuntu,Fedora,Mint 或 elementary OS 到更加复杂、轻量级和企业级的诸如 Slackware,Arch Linux 或 RHEL,这些发行版本我都已经见识过了。除了这些,难道没有其他别的了吗?其实 Linux 的生态系统是非常多样化的,对每个人来说,总有一款适合你。下面就让我们讨论一些稀奇古怪的小众 Linux 发行版本吧,它们代表着开源平台真正的多样性。

Puppy Linux

Puppy Linux

它是一个仅有一个普通 DVD 光盘容量十分之一大小的操作系统,这就是 Puppy Linux。整个操作系统仅有 100MB 大小!并且它还可以从内存中运行,这使得它运行极快,即便是在老式的 PC 机上。 在操作系统启动后,你甚至可以移除启动介质!还有什么比这个更好的吗? 系统所需的资源极小,大多数的硬件都会被自动检测到,并且它预装了能够满足你基本需求的软件。在这里体验 Puppy Linux 吧.

Suicide Linux(自杀 Linux)

Suicide Linux(自杀 Linux)

这个名字吓到你了吗?我想应该是。 ‘任何时候 -注意是任何时候-一旦你远程输入不正确的命令,解释器都会创造性地将它重定向为 rm -rf / 命令,然后擦除你的硬盘’。它就是这么简单。我真的很想知道谁自信到将Suicide Linux 安装到生产机上。 警告:千万不要在生产机上尝试这个! 假如你感兴趣的话,现在可以通过一个简洁的DEB 包来获取到它。

PapyrOS

PapyrOS

它的 “奇怪”是好的方面。PapyrOS 正尝试着将 Android 的 material 设计语言引入到新的 Linux 发行版本上。尽管这个项目还处于早期阶段,看起来它已经很有前景。该项目的网页上说该系统已经完成了 80%,随后人们可以期待它的第一个 Alpha 发行版本。在该项目被宣告提出时,我们做了 PapyrOS 的小幅报道,从它的外观上看,它甚至可能会引领潮流。假如你感兴趣的话,可在 Google+ 上关注该项目并可通过 BountySource 来贡献出你的力量。

Qubes OS

Qubes OS

Qubes 是一个开源的操作系统,其设计通过使用 安全分级 Security by Compartmentalization 的方法,来提供强安全性。其前提假设是不存在完美的没有 bug 的桌面环境。并通过实现一个‘ 安全隔离 Security by Isolation ’ 的方法,Qubes Linux试图去解决这些问题。Qubes 基于 Xen、X 视窗系统和 Linux,并可运行大多数的 Linux 应用,支持大多数的 Linux 驱动。Qubes 入选了 Access Innovation Prize 2014 for Endpoint Security Solution 决赛名单。

Ubuntu Satanic Edition

Ubuntu Satanic Edition

Ubuntu SE 是一个基于 Ubuntu 的发行版本。通过一个含有主题、壁纸甚至来源于某些天才新晋艺术家的重金属音乐的综合软件包,“它同时带来了最好的自由软件和免费的金属音乐” 。尽管这个项目看起来不再积极开发了, Ubuntu Satanic Edition 甚至在其名字上都显得奇异。 Ubuntu SE (Slightly NSFW)

Tiny Core Linux

Tiny Core Linux

Puppy Linux 还不够小?试试这个吧。 Tiny Core Linux 是一个 12MB 大小的图形化 Linux 桌面!是的,你没有看错。一个主要的补充说明:它不是一个完整的桌面,也并不完全支持所有的硬件。它只含有能够启动进入一个非常小巧的 X 桌面,支持有线网络连接的核心部件。它甚至还有一个名为 Micro Core Linux 的没有 GUI 的版本,仅有 9MB 大小。Tiny Core Linux

NixOS

NixOS

它是一个资深用户所关注的 Linux 发行版本,有着独特的打包和配置管理方式。在其他的发行版本中,诸如升级的操作可能是非常危险的。升级一个软件包可能会引起其他包无法使用,而升级整个系统感觉还不如重新安装一个。在那些你不能安全地测试由一个配置的改变所带来的结果的更改之上,它们通常没有“重来”这个选项。在 NixOS 中,整个系统由 Nix 包管理器按照一个纯功能性的构建语言的描述来构建。这意味着构建一个新的配置并不会重写先前的配置。大多数其他的特色功能也遵循着这个模式。Nix 相互隔离地存储所有的软件包。有关 NixOS 的更多内容请看这里

GoboLinux

GoboLinux

这是另一个非常奇特的 Linux 发行版本。它与其他系统如此不同的原因是它有着独特的重新整理的文件系统。它有着自己独特的子目录树,其中存储着所有的文件和程序。GoboLinux 没有专门的包数据库,因为其文件系统就是它的数据库。在某些方面,这类重整有些类似于 OS X 上所看到的功能。

Hannah Montana Linux

Hannah Montana Linux

它是一个基于 Kubuntu 的 Linux 发行版本,它有着 汉娜·蒙塔娜 Hannah Montana 主题的开机启动界面、KDM(KDE Display Manager)、图标集、ksplash、plasma、颜色主题和壁纸(I'm so sorry)。这是它的链接。这个项目现在不再活跃了。

RLSD Linux

它是一个极其精简、小巧、轻量和安全可靠的,基于 Linux 文本的操作系统。开发者称 “它是一个独特的发行版本,提供一系列的控制台应用和自带的安全特性,对黑客或许有吸引力。” RLSD Linux.

我们还错过了某些更加奇特的发行版本吗?请让我们知晓吧。


via: http://www.techdrivein.com/2015/08/the-strangest-most-unique-linux-distros.html

作者:Manuel Jose 译者:FSSlc 校对:wxy

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

The USC Will Be Replaced

Ubuntu 软件中心将在 Ubuntu 16.04 LTS 中被替换。

Ubuntu Xenial Xerus 桌面用户将会发现,这个熟悉的(并有些繁琐的)Ubuntu 软件中心将不再可用。

按照目前的计划,GNOME 的 软件应用 Software application 将作为基于 Unity 7 的桌面的默认包管理工具。

GNOME Software

GNOME 软件应用

作为这次变化的一个结果是,会新开发插件来支持软件中心的评级、评论和应用程序付费的功能。

该决定是在伦敦的 Canonical 总部最近举行的一次桌面峰会中通过的。

“相对于 Ubuntu 软件中心,我们认为我们在 GNOME 软件中心(sic)添加 Snaps 支持上能做的更好。所以,现在看起来我们将使用 GNOME 软件中心来取代 [Ubuntu 软件中心]”,Ubuntu 桌面经理 Will Cooke 在 Ubuntu 在线峰会解释说。

GNOME 3.18 架构与也将出现在 Ubuntu 16.04 中,其中一些应用程序将更新到 GNOME 3.20 , ‘这么做也是有道理的’,Will Cooke 补充说。

我们最近在 Twitter 上做了一项民意调查,询问如何在 Ubuntu 上安装软件。结果表明,只有少数人怀念现在的软件中心...

你使用什么方式在 Ubuntu 上安装软件?

  • 软件中心
  • 终端

在 Ubuntu 16.04 其他应用程序也将会减少

Ubuntu 软件中心并不是唯一一个在 Xenial Xerus 中被丢弃的。

光盘刻录工具 Brasero 和即时通讯工具 Empathy 也将从默认镜像中删除。

虽然这些应用程序还在不断的开发,但随着笔记本减少了光驱以及基于移动网络的聊天服务,它们看起来越来越过时了。

如果你还在使用它们请不要惊慌:Brasero 和 Empathy 将 仍然可以通过存档在 Ubuntu 上安装

也并不全是丢弃和替换,默认还包括了一个新的桌面应用程序:GNOME 日历。


via: http://www.omgubuntu.co.uk/2015/11/the-ubuntu-software-centre-is-being-replace-in-16-04-lts

作者:Sam Tran 译者:strugglingyouth 校对:wxy

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