- 我是 linux 新手。
- 我尝试使用 ubuntu WSL 在我的 Windows 机器上本地部署一个闪亮的服务器。
- 我在我的 Windows 机器上成功安装了 ubuntu WSL,我可以启动 ubuntu。
- 到目前为止,我来到这里:
tarjae@DESKTOP-LNI8ONS:~$
- 如果我输入
dir
我会得到这个:
R rstudio-server-latest-amd64.deb shiny-server-1.5.17.973-amd64.deb.1
app1.R shiny-server-1.5.17.973-amd64.deb
从现在开始,发生的一切对我来说都是随机的,取决于我学习的教程!
所以我的问题是:
- 如何检查我是 root 还是用户?(基本管理 linux 命令的来源)?
- 我闪亮的服务器在哪里?
- 我怎样才能启动服务器
sudo start shiny-server
不工作->
tarjae@DESKTOP-LNI8ONS:~$ sudo start shiny-server
[sudo] password for tarjae:
sudo: start: command not found
- 最后我该如何开始
app1.R
我完全清楚,这一切都是一种工资。但我希望为我的目的而迈出下一步。任何指导建议都受到高度赞赏。
更新1:
dpkg-query -l shiny
节目
dpkg-query: no packages found matching shiny
- 显示后
sudo apt install ./shiny-server-1.5.17.973-amd64.deb
:
Note, selecting 'shiny-server' instead of './shiny-server-1.5.17.973-amd64.deb'
shiny-server is already the newest version (1.5.17.973).
0 upgraded, 0 newly installed, 0 to remove and 12 not upgraded.
更新 2:
和
tarjae@DESKTOP-LNI8ONS:~$ dpkg-query -l | grep shiny
我得到:
ii shiny-server 1.5.17.973 amd64 Shiny Server
- 然后与
tarjae@DESKTOP-LNI8ONS:~$ systemctl start shiny-server
我得到:
tarjae@DESKTOP-LNI8ONS:~$ systemctl start shiny-server
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
更新 3:
tarjae@DESKTOP-LNI8ONS:/home/shiny$ sudo service shiny-server start
我得到:
tarjae@DESKTOP-LNI8ONS:/home/shiny$
什么都没发生。前几天我读了一篇博客,在那里我应该创建一个新用户,我做到了,有了这个新用户,我可以在 localhost:3838 上看到一些东西。很抱歉耽误您的时间!
如果我做:
tarjae@DESKTOP-LNI8ONS:~$ service shiny-server status
#OR
tarjae@DESKTOP-LNI8ONS:~$ sudo service shiny-server status
# I get:
tarjae@DESKTOP-LNI8ONS:~$
根据评论,您似乎可以在 WSL 上打开 tcp 端口。所以问题一定出在systemd上。显然它没有被 WSL 用作 init。也许您可以手动启动闪亮服务器。
很高兴听到你让它在液滴上工作。我自己在 WSL2/Ubuntu 上试了一下,肯定有一些问题。
老实说,鉴于您对 Linux 的了解程度,您在分析竞争方向方面做得很好。你已经以正确的顺序尝试了正确的事情。我可以在这里解释为什么它们不起作用,并且希望如何让它运行。
对于您的“Update2”:
是的,这是启动它的“正常”方法,但
systemctl
需要 Systemd,如果没有一些 hacky 变通方法,它在 WSL2 上不起作用。Systemd 是当今大多数 Linux 发行版的初始化机制,但 WSL 需要它自己/init
的机制来设置其与 Windows 的紧密集成(有关更多详细信息,请参阅此答案,有关 WSL2 下的 Systemd 的更多信息,请参阅此答案)。/init
对于您的“Update3”:
再说一次,你是绝对正确的。许多应用程序和发行版仍然为早于 Systemd 的 SysVInit 系统提供“老式”初始化脚本。这些脚本通常会
service
使用该命令在 WSL2(甚至 WSL1)上运行。但是,通常这些初始化脚本已经太久未维护或未经测试。在这种情况下,init 脚本中有一个明确的错误导致它失败。这个错误甚至会阻止它在“正常”(非 WSL)Ubuntu 上运行。
脚本中的两行导致它在启动之前就失败了:
这基本上是说,“文件'shiny-server'是否存在可执行权限?如果没有,退出脚本。”
不幸的是,它没有提供
shiny-server
. 将第一行更改为......允许它工作,至少对于
service shiny-server start
:也就是说,除此之外似乎还有更多问题,因此重新启动服务也会失败,并且
status
两者都不支持。请注意,
service
和systemctl
都是一种“方便”的方法。完全可以自己处理这个问题,尤其是对于像shiny
.您可以查看
/etc/init.d/shiny-server
或/opt/shiny-server/config/systemd/shiny-server.service
查看这些文件在做什么,尽管随着您获得 Linux 经验,这无疑会更容易。这至少让它运行起来了,虽然我还没有真正尝试过它来知道那里的功能是否在那个时候起作用。但是,如果您确实遇到了其他问题,我相信我们可以在 WSL2 上解决它们。这“只是”知道在哪里看的问题。