是否可以在远程服务器(Linux RedHat 4.4.7-17)上更改我的默认浏览器(lynx)? (使用 Gadfly 在 Julia 中绘图)

Posted

技术标签:

【中文标题】是否可以在远程服务器(Linux RedHat 4.4.7-17)上更改我的默认浏览器(lynx)? (使用 Gadfly 在 Julia 中绘图)【英文标题】:Is it possible to change my default browser (lynx) on a remote server (Linux RedHat 4.4.7-17)? (Plotting in Julia using Gadfly) 【发布时间】:2016-06-27 11:37:31 【问题描述】:

我正在使用 julia 和 gadfly 在远程服务器(通过 Putty 连接)上绘制一些图,并且这些图应该在我的默认服务器中打开。它们在 lynx 中打开,因此看起来并不像任何东西。我假设 lynx 是我工作服务器上的默认浏览器,我想知道是否有任何方法可以在 chrome 或 firefox 中打开它们?我不是服务器管理员,无权使用所有命令(即 sudo 等)。

尝试使用 xdg-utils 时,我收到一条错误消息,提示“找不到命令”,并且我的 /usr/.local/applications 中没有任何应用程序,也无法在目录中找到 mimeapps.list。

我能做些什么来在另一个互联网浏览器而不是 lynx 中打开这些图吗?谢谢!

【问题讨论】:

我个人是 Julia 的 PyPlot 的粉丝,因为它不像 Gadfly 那样对浏览器有烦人的依赖。 【参考方案1】:

偏好顺序

如果可以的话,牛虻会在 Julia 的显示器上绘图(例如,如果您使用带有 Jupyter 的交互式图形笔记本)。

如果在 REPLDisplay 上没有合适的渲染方式,Gadfly 会将绘图保存到文件中,然后触发一些特定于平台的“打开此文件”逻辑。

朱莉娅自己的展示

这几乎可以肯定是最好的选择。如果您在知道如何显示绘图的环境中运行 Julia 代码(例如带有 Jupyter 的交互式图形笔记本),那么您无需再做任何事情。

如果您必须从文本提示符运行您的 Julia 代码,您可以使用基于文本的后端渲染器,或处理回退过程。

xdg-打开

Gadfly 的后备显示代码使用xdg-open 在基于 Linux 的系统上显示绘图文件。

xdg-open 工具是名为xdg-utils 的软件包的一部分。 xdg-utils 包包含多个命令,但 xdg-utils 本身不是命令——这就是为什么尝试运行“xdg-utils”失败并显示“找不到命令”的原因。

xdg-open 有自己的打开链:它将尝试特定于 GNOME、KDE ​​或您使用的任何桌面环境的打开过程。它回退到一种叫做“perl-shared-mimeinfo”的东西。

xdg-utils 包中的另一个工具是xdg-mime,它可以查询当前文件关联以及更改它们。您需要管理员权限才能更改系统范围的关联,但不需要任何特殊权限即可添加您自己的每用户关联。

由于 Gadfly 正在写入文件,然后要求 xdg-open 打开文件,因此您需要处理文件类型(而不是“浏览器”或 URL 处理程序)。对于 html 文件,它可能看起来像这样:

$ xdg-mime default mybrowser.desktop text/html

哪台计算机运行浏览器?

现在,您提到您正在使用 SSH 和 PuTTY 连接到此服务器。 PuTTY 为您的服务器提供了一个基于文本的界面——即使服务器上安装了像 Firefox 这样的图形浏览器,PuTTY 也无法显示它。 (您的计算机上还需要其他东西,服务器可以使用它来绘制浏览器窗口。)

使用计算机自带的浏览器可能会更舒服。

那我该怎么办?

无论如何,启动浏览器对于服务器计算机来说有点奇怪,而且要做到这一点可能很繁琐。所以我的建议是:

跳过 PuTTY,直接在 Jupyter 笔记本中显示。 将您的输出保存为 HTML(或 SVGJS),以便您的计算机浏览器可以访问它。

【讨论】:

谢谢 RJ,我在终端中设置了 BROWSER=echo 并从路径启动了 julia,使用 Gadfly 我尝试绘制 plot([sin,cos], 0, 25) 并且它仍然在 lynx 中打开它。这是由于朱莉娅环境变量吗?我四处搜索,看看 julia 中是否有可以设置为echo 的浏览器变量,但什么也没找到。目前我正在使用; 使绘图函数的输出静音并将绘图保存为PNG,这似乎工作正常,但图片不是交互式的。我也可以将它们另存为 js.svg,但是处理这么多数据时速度很慢。 我进行了一些研究,但我的建议似乎不合时宜:Gadfly 不是尊重$BROWSER 的应用程序之一。它始终使用 xdg-open(或其他平台上的等效项),并且始终使用文件名(而不是 URL)。我会尽快更新我的答案。

以上是关于是否可以在远程服务器(Linux RedHat 4.4.7-17)上更改我的默认浏览器(lynx)? (使用 Gadfly 在 Julia 中绘图)的主要内容,如果未能解决你的问题,请参考以下文章

vscode远程连接虚拟机配置(redhat8.4)

LINUX REDHAT第九单元文档

windows 如何远程控制redhat linux系统!

redhat enterprixe 5.0 NFS服务配置与管理

Redhat系列linux系统安装,并使用xshell工具进行远程连接

RedHat Enterprise Linux 6 配置Xmanager ,实现图形界面连接