Abhishek Prakash 发布的文章

如果你 在 Ubuntu 上运行 Java 程序 ,使用 Eclipse、Maven 或 Netbeans 等等,你将需要将 JAVA_HOME 环境变量设置为正确的路径。否则,你的系统将会向你控诉 “java\_home 环境变量没有设置”。

在这篇初学者教程中,我将向你展示在 Ubuntu 上正确地设置 JAVA_HOME 变量的步骤。这些步骤应该也适用于大多数的其它的 Linux 发行版。

设置过程包含这些步骤:

  • 确保已安装 Java 开发工具包(JDK)。
  • 查找 JDK 可执行文件的正确的位置。
  • 设置 JAVA_HOME 环境变量,并永久更改它。

步骤 1: 核查 JDK 是否已经安装

核查 Java 开发工具包(JDK)是否已经安装在你的 Linux 系统上的最简单的方法是运行这个命令:

javac --version

上面的命令将核查 Java 编译器的版本。如果已经安装了 Java 编译器,它将显示 Java 版本:

Java Compiler is installed

如果上面的命令显示像这样未找到 javac 命令的错误信息,你得先安装 JDK :

Java Compiler is not installed

如果在你的系统上并没有安装 Java 编译器,使用这条命令来安装 Java 开发工具包 (JDK):

sudo apt install default-jdk

这将在你当前的 Ubuntu 版本中安装默认的 Java 版本。如果你需要一些其它版本的 Java 版本,那么你必须 在 Ubuntu 中安装 Java 时 具体指出它的版本。

在你确保 Java 编译器存在于你的系统之中后,接下来就到了查找其位置的时候了。

步骤 2: 获取 JDK 可执行文件(Java 编译器)的位置

可执行文件通常位于 /usr/lib/jvm 目录之中。但我不会让你来玩一个猜谜游戏,让我们来找出 Java 可执行文件的路径。

使用 which 命令 来获取 Java 编译器可执行文件的位置:

which javac

在这里的问题是,它给出的位置实际上是一个 符号链接 。你将需要按照下图执行几次:

最简单的方法是直接使用下面这条命令跟随符号链接来以获取实际的可执行文件:

readlink -f `which java`

readlink 命令会跟随一个符号链接。我在 which java 的外侧使用 readlink 将会使用 which java 的输出来替换要检查的符号链接,这被称之为命令替换。因此,在这个实例中,上面的命令大体上相当于 readlink -f /usr/bin/java

在我的示例中,可执行文件的位置是 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 。对你来说可能会不一样。在你的系统中,复制上述命令所获取的正确的路径。你知道,你可以 在 Ubuntu 的终端中复制和粘贴

步骤 3: 设置 JAVA\_HOME 变量

现在,你已经获取了位置,使用它来设置 JAVA_HOME 环境变量:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java

核查 JAVA_HOME 目录的值:

echo $JAVA_HOME

尝试在同一个终端中运行你的 Java 程序或工程,并查看它是否工作。

这尚未结束。你刚刚声明的 JAVA_HOME 环境变量是临时的。如果你关闭这个终端或开始一个新的会话,它将会再次变成空的。

为了“永久地”设置 JAVA_HOME 变量,你应该将其添加到你的家目录中的 .bashrc 文件中。

你可以 在 Linux 终端中使用 Nano 编辑器来编辑文件。 如果你不想使用它,并想采取一种简单的复制和粘贴的方法,使用下面的命令:

首先备份你的 .bashrc 文件(以防万一你把它弄坏了,你还可以将其再恢复回来):

cp ~/.bashrc ~/.bashrc.bak

接下来,使用 echo 命令来追加 在这一节开头使用的 export 命令。你应该适当地更改下面的命令,以便其正确地使用你的系统所显示的路径

echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java" >> ~/.bashrc

验证它已经被正确地添加到文件的结尾处:

tail -3 ~/.bashrc

上面的 tail 命令 将显示所具体指定文件的最后 3 行。

这里是上面的三个命令的全部的输出:

现在,即使你退出会话或重新启动系统,JAVA_HOME 环境变量都仍将设置为你所具体指定的值。这就是你所想要的,对吧?

注意,如果你将来更改默认的 Java 版本,你将需要更改 JAVA_HOME 环境变量的值并将其指向正确的可执行文件的路径。

我希望这篇教程不仅会帮助你设置 JAVA_HOME 环境变量,也会教会你如何完成这项工作。

如果你仍然面临难题或者有一些疑问或建议,请在评论区告诉我。


via: https://itsfoss.com/set-java-home-ubuntu/

作者:Abhishek Prakash 选题:lujun9972 译者:robsean 校对:wxy

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

这是一篇快速提示,旨在给 Ubuntu 的新用户解释构建基础包是什么、它的用处和安装步骤。

在 Ubuntu 中安装构建基础包(build-essential),只需要在终端中简单输入这个命令:

sudo apt update && sudo apt install build-essential

但围绕它有几个问题,你可能想知道答案:

  • 什么是构建基础包?
  • 它包含什么内容?
  • 为什么要安装它(如果安装的话)?
  • 如何安装它?
  • 如何删除它?

什么是 Ubuntu 中的构建基础包?

构建基础包(build-essential)实际上是属于 Debian 的。在它里面其实并不是一个软件。它包含了创建一个 Debian 包(.deb)所需的软件包列表。这些软件包包括 libcgccg++makedpkg-dev 等。构建基础包包含这些所需的软件包作为依赖,所以当你安装它时,你只需一个命令就能安装所有这些软件包。

请不要认为构建基础包是一个可以在一个命令中神奇地安装从 Ruby 到 Go 的所有开发工具的超级软件包。它包含一些开发工具,但不是全部。

你为什么要安装构建基础包?

它用来从应用的源代码创建 DEB 包。一个普通用户不会每天都去创建 DEB 包,对吗?

然而,有些用户可能会使用他们的 Ubuntu Linux 系统进行软件开发。如果你想 在 Ubuntu 中运行 c 程序,你需要 gcc 编译器。如果你想 在 Ubuntu 中运行 C++ 程序,你需要 g++ 编译器。如果你要使用一个不寻常的、只能从源代码中获得的软件,你的系统会抛出 “make 命令未找到的错误”,因为你需要先安装 make 工具。

当然,所有这些都可以单独安装。然而,利用构建基础包的优势,一次性安装所有这些开发工具要容易得多。这就是你得到的好处。

这就像 ubuntu-restricted-extras 包允许你一次安装几个媒体编解码器

现在你知道了这个包的好处,让我们看看如何安装它。

在 Ubuntu Linux 中安装构建基础包

在 Ubuntu 中按 Ctrl+Alt+T 快捷键打开终端,输入以下命令:

sudo apt update

使用 sudo 命令,你会被要求输入你的账户密码。当你输入时,屏幕上没有任何显示。这没问题。这在大多数 Linux 系统中都是这样的。盲打输入你的密码,然后按回车键。

apt update 命令刷新了本地软件包的缓存。这对于一个新安装的 Ubuntu 来说是必不可少的。

之后,运行下面的命令来安装构建基础包:

sudo apt install build-essential

它应该显示所有要安装的软件包。当要求确认时按 Y

等待安装完成。就好了。

从 Ubuntu 中删除构建基础包

保留这些开发工具不会损害你的系统。但如果你的磁盘空间不足,你可以考虑删除它。

在 Ubuntu 中,由于有 apt remove 命令,删除软件很容易:

sudo apt remove build-essential

运行 autoremove 命令来删除剩余的依赖包也是一个好主意:

sudo apt autoremove

你现在知道了所有关于构建基础包的基础(双关语)。请享受它吧~


via: https://itsfoss.com/build-essential-ubuntu/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

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

了解在 Linux 上安装 Rust 编程语言及其包管理器 Cargo 的各种方法。

自从 Mozilla 贡献了 Rust 语言之后,它就获得了更加突出和受欢迎的地位。口说无凭。Rust 将被使用在 Linux 内核中,它是继 C 语言之后的第二种编程语言。

许多开发人员也开始使用 Rust 语言制作很棒的基于命令行的工具。这些工具通常可以通过 Cargo 包管理器 获得。

这就是为什么在 Linux 中安装 Rust 支持对程序员和最终用户都很重要的原因。

官方 Rust 文档建议通过以下这种方式下载并执行安装程序脚本在 Linux 中安装 Rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

这是可行的。但是,你的发行版可能已经打包了 Rust。使用你的发行版的 包管理器 也是一种选择。

让我向你介绍官方 Rust 方式和包管理器方式的 Rust 安装步骤。

方法1:使用官方方法在任意的 Linux 上安装 Rust

这种方法有几个优点:

  • 你可以获取最新的 Rust 和 Cargo 版本
  • Rust 仅仅是为当前的用户安装,并不是所有用户
  • 你并不需要 root 用户或者 sudo 权限就可以为自己安装 Rust

一些人不喜欢从互联网下载并 运行 shell 脚本,即使它来自官方。但是,由于它不需要 root 访问权限并且脚本来自官方,因此以这种方式安装它应该是安全的。

首先,确保你已经安装了 curl。如果没安装,使用你的发行版的包管理器安装它。你可以使用 apt 命令在 Ubuntu 和 Debian 上安装 Curl

sudo apt install curl

接下来,使用这条命令下载脚本并运行它:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

它会询问你输入所需的安装类型。选择选项 1

脚本完成安装后,你需要获取配置文件的来源,以使更改应用于你的 shell。

应用文件:

source $HOME/.cargo/env

完成后,通过检查已安装的版本来验证 Rust 是否可用:

rustc --version

Verifying Rust installation

太酷了。如果 Rust 发布了新版本,你可以使用如下命令更新已安装的版本:

rustup update

在你看到其它安装方法之前,让我快速展示如何移除以这种方式安装的 Rust。

删除以官方方式安装的 Rust

在终端中,使用如下的命令从系统中移除 Rust:

rustup self uninstall

询问时按 Y,你将从系统中删除 Rust。

Removing Rust from Linux

官方方式安装已经完成。让我们看看如何使用 apt 命令在 Ubuntu 上安装 Rust。

方法2:使用 apt 命令在 Ubuntu 上安装 Rust

为什么要使用包管理器?

  • 它在整个系统范围内安装 Rust,可供系统上的所有用户使用
  • 它与其它系统更新一起集中更新(如果你的发行版添加了新版本的 Rust)

Ubuntu 中有两个主要的 Rust 包:

  • rustc:用于 Rust 编程语言的 Rust 编译器
  • cargo:Cargo 是 Rust 的包管理器,它会自动安装 rustc

作为一个普通用户,你将使用 Cargo 来安装基于 Rust 的应用程序。作为程序员,你需要 Cargo 来获取其它 Rust 包或创建自己的包。

由于 cargo 包含 rustc,所以我建议安装它,以便一次性安装所有必需的软件包。

sudo apt install cargo

系统会要求你输入账号密码。

当然,你可以自由使用 apt install rustc,只安装 Rust。这取决于你的选择。

你可以验证是否为你和所有其他用户安装了 Rust(如果你愿意):

很好。让我也快速展示卸载步骤。

使用 apt remove 移除 Rust

要移除 Rust,你可以先移除 Cargo,然后使用 autoremove 命令移除随它安装的依赖项。

sudo apt remove cargo

现在运行 autoremove

sudo apt autoremove

就是这样。你现在了解了在 Ubuntu 和其它 Linux 发行版上安装 Rust 的所有基本知识。随时欢迎提出问题和建议。


via: https://itsfoss.com/install-rust-cargo-ubuntu-linux/

作者:Abhishek Prakash 选题:lujun9972 译者:perfiffer 校对:wxy

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

我假设你对 Linux 很陌生。

你按照网上的一些教程,告诉你要安装某个程序或运行某个命令。可能是与服务器有关的东西。

但当你运行这个命令时,你遇到了这个错误:

E: Could not open lock file /var/lib/dpkg/lock-frontend – open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?

或者类似的错误:

dpkg: error: required read/write access to the dpkg database directory /var/lib/dpkg
E: Sub-process dpkg –set-selections returned an error code (2)
E: Executing dpkg failed. Are you root?

这两个错误都在问你同一个问题:你是 root 吗?而这就是这个问题的答案。成为 root。

成为 root 以避免这个错误

你如何 在 Ubuntu 或 Debian 中成为 root?你使用 sudo 命令。

是的,就是这样。无论你在运行什么命令,只要在它前面加上 sudo 即可。

sudo your_command

Running command with sudo

它将要求你输入你的用户账户密码。请记住,当你输入密码时,屏幕上不会显示任何东西,这也没关系。

你的系统没有任何问题。在大多数 Linux 系统中,输入密码时不会显示通常的星号或其他东西是一种“安全特性”。

只要输入密码,并在密码后按下回车键即可。如果密码输入正确,你现在应该可以运行该命令了。

你甚至可以使用这个方便的 Linux 命令行技巧,用 sudo 运行以前的命令:

sudo !!

这很简单,而且立即生效,除非你没有 sudo 权限。然后,你会看到一个不同的错误。

看到一个 “User is not in sudoer file” 的错误?

Some users cannot run commands with sudo

当你 安装 Ubuntu 时,你必须创建一个用户账户。这个用户被自动授予 sudo 权限,在需要时以 root 身份运行命令。

这发生在 Ubuntu 桌面上,而不是服务器上。大多数服务器发行版会有一个单独的 root 账户。如果你单独创建了一个普通账户,你就必须把这个用户添加到 sudoer 中,以便这个普通用户可以使用 sudo

在上面的截图中,我已经创建了这个额外的用户,但没有将其添加到 sudo 组中。这意味着这里的用户 prakash 没有使用 sudo 命令的权限,因此系统抱怨 “prakash is not in sudoers file”。

该事件在哪里报告?

错误的 sudo 尝试会被添加到系统日志中。它记录了用户名、虚拟终端号、运行命令的位置和运行的命令。

Incorrect sudo attempts are logged into the system

这些日志的位置在不同的发行版中有所不同。

通常,在 Ubuntu 中你可以在 journalctl 日志或 /var/log/auth.log 文件中找到它,在 Fedora 中可以在 /var/log/audit/audit.log 文件中找到它。

如果一个用户不在 sudoer 列表中,你能做什么?

当你不能用当前的用户账户使用 sudo 时,你能做什么?首先,验证该用户是否有 sudo 权限。如果没有,你可以有一些选择

  • 以 root 身份登录或切换 root 身份(如果你有 root 密码)。
  • 将该用户加入 sudoer 列表 (如果你有其他用户账户的管理或 sudo 权限)。
  • 如果你在多用户的 Linux 系统中,自己没有 root 或 sudo 权限,请你的系统管理员授予你的用户 sudo 权限或安装你想安装的应用。

这有帮助吗?

sudo 是一个非常全面的安全机制,它不仅仅是允许一个普通用户成为 root。它有助于对系统进行审计,了解哪个用户用 sudo 运行了哪个命令。它还可以被配置为只允许某个用户用 sudo 运行某些命令。

你不会在桌面 Linux 上看到如此细化的 sudo 配置,在桌面 Linux 上,它被预先配置为允许 sudo 组中的任何用户以 root 的身份运行任何命令。关于 sudo 的更多信息,请参见其他文章。

我希望在解决这个经典的初学者问题时,你能对 sudo 命令有一些初步的了解。如果你对这个主题有进一步的问题,请在评论区告诉我。


via: https://itsfoss.com/fixed-are-you-root-error/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

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

有很多 基于 Linux 的笔记本电脑,也有 预装了 Linux 的迷你 PC,而市场上还有一些 基于 Linux 的智能手机

那平板电脑呢?有没有一些不错的基于 Linux 的平板电脑?这可能不能用一句话说清楚。

许多仅使用 Linux 的系统制造商专注于制造台式电脑。这主要是由于触摸设备上的 Linux 体验与安卓和 iOS 提供的体验相距甚远。

但这是否意味着你不能在平板电脑上使用 Linux?并非如此。对于早期尝试用户和 DIY 爱好者来说,还有一些选择的。让我们来看看在这些 Linux 平板电脑中,你有哪些选择。

Ubuntu Touch

BQ 平板电脑上的 Ubuntu Touch 操作系统

好吧!这不是一个平板电脑,而是一个操作系统。但它确实让你可以在一些旧的安卓平板电脑上安装一个适合触摸操作的 Ubuntu 版本。

注意“一些”这个词。Ubuntu Touch 官方 支持 Nexus 7、联想 M10、Xperia Z4 和 BQ Aquaris 平板。你甚至可以尝试在你的其他平板电脑上安装 Ubuntu Touch。它可能无法 100% 工作,但仍然非常有用。

Ubuntu Touch 是 Ubuntu 团队的一个项目,但是他们 在 2017 年中止了它UBports 承担了继续这个项目的责任,他们在有限的资源下做的很棒。

总而言之,如果你喜欢各种实验,想让你的旧安卓平板电脑获得新生,Ubuntu Touch 可能是你的周末项目。

PineTab

PineTab

Pine64 始于其单板计算机 Pine A64,以作为 树莓派的替代品。随着时间的推移,它推出了几个 Pine 品牌的产品。这份名单里包括低调的 PineTime 智能手表、PineBook 笔记本电脑、PinePhone 智能手机和 PineTab 平板电脑。

这些 Pine 设备通常价格低廉,并允许用户对这些小设备进行完全控制。这种可魔改的特性帮助它聚集了一大批开源 DIY 爱好者的粉丝。

PineTab 基本上使用了与带有触摸屏和键盘的 Pine64 单板计算机相同的组件。它不是看起来最漂亮的平板电脑,也不打算成为这样的。

它的规格很一般,有一个高清 IPS 电容式触摸屏、全志 A64 芯片组、四核 CPU 和 2GB 内存。

它无法与 iPad 或 Galaxy Tab 竞争,但它允许你安装你选择的发行版,并按你的要求进行配置。

请记住,Pine 的库存有限,所以如果你能看到这个设备可以购买,那你很幸运。

PineNote

PineNote

另一个 Pine 设备,与你在上一节看到的 PineTab 略有不同。

PineTab 是一款用于浏览互联网、使用应用程序和玩游戏的 Linux 平板电脑,而 PineNote 是用来做笔记和阅读书籍和文件的。

它有一个电子墨水显示屏,你可能在 Kindle 等电子书阅读器上见过。除了电子书阅读器之外,PineNote 还可以你用 Wacom 笔做笔记。

PineNote 拥有四核 Rockchip、多点触控电子墨水面板、4GB 内存和 128GB eMMC 存储。它也是为数不多的价格高于通常的 399 美元的平板点之一。

请记住,PineNote 正处于早期开发阶段,只接受开发者的订单。

RasPad

RasPad

RasPad 是一个用于树莓派设备的套件,可以把它变成一个基于触摸功能的设备。与普通的平板不同,这不是一个扁平的设备,而是有一个楔形的身体。这使得它更容易在办公桌上使用。

RasPad 是专门为树莓派设备创建的,你可以轻松使用它的大部分端口。它有一个专门的 RasPad 操作系统,但你可以自由使用常规的树莓派操作系统或 Ubuntu 或任何其他适合树莓派的操作系统。在选择操作系统时请考虑触控友好性。

请记住,树莓派设备不包括在套件中。你必须要单独购买。

你的选择是什么?

我知道我们离一个优秀的 Linux 平板电脑还很远,但它们至少可以和市场上的安卓平板电脑竞争。至少我们有一些可用的选择,这也是一线希望。

你是否已经拥有以上列出的设备之一了?你的体验如何?

如果你只能选择其中之一,那么你选择哪一款 Linux 平板电脑?


via: https://itsfoss.com/linux-tablets/

作者:Abhishek Prakash 选题:lujun9972 译者:wxy 校对:wxy

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

Ubuntu 21.10 “Impish Indri” 刚刚发布。如果你正在使用 Ubuntu 21.04,你应该有升级到 Ubuntu 21.10 的选项。

然而,这种推出将是逐步的。这意味着不是每个人都会立即得到新版本可用的通知。在你看到升级选项之前,可能需要几周的时间。

但是,如果你迫不及待地想获得带有 GNOME 40 和其他新功能的 Ubuntu 21.10 呢?你真的需要等待吗?不用。

现在就从 Ubuntu 21.04 升级到 Ubuntu 21.10

以下是你要做的。打开“ 软件和更新 Software & Updates ”应用:

Start the Software & Updates application

并确保你在“ 更新 Updates ”标签下将“ 通知我新的 Ubuntu 版本 Notify me of a new Ubuntu version ”设置为“ 任何新版本 For any new version ”。

Make sure that settings are right for new Ubuntu version notification

现在打开终端,输入以下命令,以确保你的系统已经更新:

sudo apt update && sudo apt upgrade

当你的 Ubuntu 21.04 系统安装了所有的更新,运行更新管理器来寻找开发版本(本例中为 Ubuntu 21.10)。

update-manager -d

它将打开寻找更新的“ 更新管理器 Update Manager ”。由于你已经更新了系统,它不会找到新的更新来安装。然而,它将看到 Ubuntu 21.10 现在已经可用。

Hit the upgrade button

你可以点击“ 升级 Upgrade ”按钮,按照屏幕上的选项开始升级程序。你需要有良好的网络速度来下载 2GB 的更新。确保你的系统在升级过程中保持与电源的连接。

享受 Ubuntu 21.10!

(题图:discourse.ubuntu.com


via: https://itsfoss.com/upgrade-ubuntu-to-newer-version/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

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