是否可以更改远程服务器 (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)

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

当尝试使用 xdg-utils 时,我收到一条错误消息 "command not found" 并且我的 /usr/ 中没有任何应用程序。local/applications 也找不到 mimeapps.list 在目录中。

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

偏好顺序

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

如果没有合适的方式在 REPLDisplay 上呈现,Gadfly 会将绘图保存到文件中,然后触发一些特定于平台的 "open this file" 逻辑。

朱莉娅自己的展示

这几乎可以肯定是最佳选择。如果您 运行 在知道如何显示绘图的环境中使用 Julia 代码(例如带有 Jupyter 的交互式图形笔记本),那么就没有什么可做的了。

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

xdg-open

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

xdg-open 工具是名为 xdg-utils 的软件包的一部分。 xdg-utils 包包含几个命令,但 xdg-utils 本身不是一个命令——这就是为什么尝试 运行 "xdg-utils" 失败并返回 "command not found".

xdg-open 有自己的打开链:它会尝试特定于 GNOME、KDE ​​或您正在使用的任何桌面环境的打开过程。它回落到一个叫做 "perl-shared-mimeinfo".

的东西

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

由于 Gadfly 正在写入文件然后要求 xdg-open 打开文件,因此您需要处理文件类型(而不是 "browser" 或 URL 处理程序)。 HTML 个文件可能看起来像这样:

$ xdg-mime default mybrowser.desktop text/html

哪台计算机 运行 是浏览器?

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

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

那我该怎么办?

无论如何,启动浏览器对于服务器计算机来说有点奇怪,实现它可能很费力。所以我的建议是:

  • 跳过 PuTTY,直接在 Jupyter notebook 中显示。
  • 将您的输出保存为 HTML(或 SVGJS)您计算机的浏览器可以访问的地方。