Swift开发服务端(二):使用Parallels Desktop虚拟机安装Ubuntu系统及相关配置


故乡是一个人的羞涩处,也是一个人最大的隐秘。我把故乡隐藏在身后,单枪匹马去闯荡生活。我在世界的任何一个地方走动,居住和生活,那不是我的,我不会留下脚印。

——刘亮程《一个人的村庄》

简介

  • SwiftMac的原生支持就不用多说了,虽然是开源编程语言,但是有她亲爹苹果在后面支持,能不原生支持苹果系统🌝?
  • 好消息是Swift开源后支持Linux,我们可以在Linux上面使用Swift配置环境,编写、编译、部署服务器了。
  • 本文将介绍如何通过使用Parallels Desktop虚拟机(以下简称PD),在Mac系统下安装Ubuntu系统级注意点。
  • 当然、你也可以直接安装一个Linux系统,或者在其他电脑安装Linux系统,全凭个人爱好。

  • Swift开发服务端(一):MySQL安装及配置

正文

  • PD是一款相当强大且好用的虚拟机,可以安装AndroidMacwindows、以及比较常用的Linux系统(至于如何获取该软件,自己看着办😂)。
  • PD已经集成了上面系统的下载安装功能。如果你的网速比较快、而且磁盘空间也比较充裕的情况下,强烈推荐使用这种方式安装,完全适合像我这种比较懒的人。
  • 当然了,我是通过单独下载安装包的方式安装的,你问我为什么?当然是因为这样显得逼格比较高啊🌚。
  • 好吧,肯定很多小伙伴不相信,其实我自己都不相信emmm,主要是因为我使用公司的iMac、系统盘是后来加的SSD,容量没有多少了,所以只能手动安装到原来的1T机械硬盘里面了。

安装

自动下载安装

  • 打开PD,选择需要安装的Linux,点击下一步:
ubuntu_install_selected
  • 点击下载按钮开始下载安装,没什么需要说的:
ubuntu_install_convenience

手动安装

下载Ubuntu安装包

  • Ubuntu downloads下载安装包。
  • 有桌面版和服务器版本,桌面版会比服务器版安装包大一些,多了一些界面元素。服务器版偏向于命令行操作,如何选择看个人爱好。
    • 我是想顺便体验下Ubuntu系统,所以安装的是16.04的桌面版。

安装

  • 打开PD,选择通过镜像文件安装,点击下一步:
ubuntu_install_ manual
  • 可以手动选择文件路径,也可以将下载的安装包拖拽到当前的PD窗口放手就可以:
ubuntu_install_ manual_imageSelected
  • 完成后选择需要安装的镜像文件,继续下一步,输入账号密码:
ubuntu_install_ manual_account
  • 选择安装名称以及安装目录:
ubuntu_install_ manual_destination
  • 之后跟着提示一路确定就可以安装成功,进入登录界面,输入密码进入系统(我这里显示效果已经优化过,你安装完可能和我的有一些细微的差别,具体设置在下面):
ubuntu_login

ubuntu_desktop

虚拟机设置

  • 如果有需要对虚拟机重新配置一些参数、如磁盘大小、内存大小、键盘、网络等等、都可以通过虚拟机窗口右上角的设置选项重新配置。
  • 也可以在虚拟机菜单里面找到该设置选项。
  • 所有修改都需要重新启动虚拟机才可以生效。
ubuntu_settings

优化配置

Ubuntu全屏设置

  • 默认安装完成后,Ubuntu窗口是无法适配全屏的,看着很难受。需要手动安装Parallels Tools
  • 点击PD虚拟机的窗口右上角的黄色感叹号(第一次安装会有),或者从菜单选择Install Parallels Tools,然后根据提示一步步操作即可。

    Install Parallels Tools option
  • 如果安装不成功,可以手动安装

    • 打开UbuntuTerminal (快捷键:Ctrl + Option + T).
    • 切换到系统管理员权限:

      1
      sudo su  // or su
    • 确保虚拟机的DVD驱动已经退出

      1
      eject /dev/cdrom
    • 选择PD菜单 > Devices > CD/DVD > Connect image,选择 /Applications/Parallels Desktop/Contents/Resources/Tools目录下的prl-tools-lin.iso文件.

    • 挂载Parallels Tools镜像到Linux虚拟机:

      1
      2
      mkdir /media/cdrom
      mount /dev/cdrom /media/cdrom
    • 检查镜像是否被成功挂载

      1
      2
      3
      4
      ls /media/cdrom

      // 输出信息
      install* installer/ install-gui* kmods/ tools/ version
    • 进入到镜像文件目录下,执行安装包:

      1
      2
      cd /media/cdrom
      ./install

Ubuntu分辨率

  • 安装完成Parallels Tools后,系统的分辨率默认是Mac系统的最高分辨率,我的iMac分辨率是4K,导致显示内容被缩放的特别小,非常难受。
  • 更难受的是默认无法更改分辨率,本着有条件要上,没条件创造条件也要上的原则,找到了修改分辨率的方法:

    • 打开终端输入xrandr查看系统支持的分辨率,*标识正在使用的分辨率:
    • 打开系统诊断框,将可以选择勾选一些调试选项,也可以什么也不做,命令如下:

      1
      sudo xdiagnose
    • 点击应用,关闭诊断窗口

      ubuntu_diagnostics
    • 修改完成后需要重新启动虚拟机,可以在虚拟机菜单栏点击重启选项,也可以使用如下命令:

      1
      sudo reboot
    • 打开Ubuntu系统的设置菜单,进入显示设置,此时里面已经可以设置不同的分辨率了。但是我发现可以直接使用最高的分辨率,只需要修改菜单和标题缩放比例就可以使整个界面很干净通透的显示效果了。

      ubuntu_settings_display
      ubuntu_display_settings_

系统文件修复

  • 由于Mac系统(突然断电或死机或未正常关闭)关闭或者虚拟机非正常关闭都可能会导致磁盘检测不能通过,无法正常进入Ubuntu系统:
1
2
3
4
5
6
7
8
9
10
11
12
dev/sda1: Inodes that were part of a corrupted orphan linked list found.
/dev/sda1: UNEXPECTED INCONSISTENCY:; RUN fsck MANUALLY
(i.e., without -a or -p options)
fsck exited with status code 4
The root filesystem on /dev/sda1 requires a manual fsck
modprobe: module ehci-orion not found in modules.dep

BusyBox v1.22.1 (Debian 1:1.22.0-9+deb8u1) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/bin/sh: can't access tty; job control turned off
(initramfs) _
  • 解决方法:输入下面指令后,按照提示一路回车(yes)操作后,会自动重启即可解决
1
(initramfs) fsck -c /dev/sda1   // 修复对象取决于出错的对象,可以是一块磁盘或者一个VG

root权限

  • sudo + 命令,输入当前用户密码后以root权限执行命令,有时间限制且仅限当前命令。
  • sudo -i,输入当前用户密码后以root权限登录shell,无时间限制。使用exitlogout退出。
  • su,输入root账户的密码后切换到root身份,无时间限制。su用户名切换回其它用户。
  • sudo su,效果同su,只是不需要root的密码,而需要当前用户的密码。

设置root密码

  • Ubuntu的默认root密码是随机的,即每次开机都有一个新的root密码。
  • 如果需要设置root用户密码,命令如下:
    • 会需要输入默认用户密码
    • 设置root用户密码
    • 确认root用户密码
1
sudo passwd root
  • 修改成功后,需要root权限,执行su root命令,输入root密码就可以了。

其他问题

VIM方向键及删除键

  • 系统默认自带的vim方向键不能和Mac下一样自如的切换光标位置,会变成ABCD,而且删除键也失效。
  • 解决方法

    • 更新系统的包管理工具,apt-get是Linux自带的包管理工具,类似于Mac系统的homebrew.

      1
      sudo apt-get update
    • 移除系统自带的vim

      1
      sudo apt-get remove vim-common
    • 下载安装新的vim

      1
      sudo apt-get install vim
    • 更多vim相关的知识传送门

ssh远程连接

  • 因为我们需要直接在本地电脑远程访问服务器如我们的虚拟机Ubuntu系统、传输文件等,此时就需要开启ssh服务,linux不同于Mac系统,默认是没有安装ssh服务的,需要我们自行下载安装。
  • 安装ssh服务,命令如下:

    1
    sudo apt-get install openssh-server
  • 确认ssh-server是否启动

    • 如果存在ssh-agentsshd说明已经开启成功

      1
      ps -e | grep ssh
    • 如果没有sshd,需要手动启动

      1
      sudo /etc/init.d/ssh start
    • ssh-server默认端口是22,可以通过SSH配置文件更改包括端口、是否允许root登录等设置, 配置文件目录如下,修改完成重启ssh-server即可。

      1
      2
      3
      4
      5
      6
      7
      8
      // 配置文件目录
      /etc/ssh/sshd_config

      // 可通过vim修改
      sudo vi /etc/ssh/sshd_config

      // 重启
      sudo /etc/init.d/ssh restart
    • 关于更多ssh远程连接以及远程scp文件传输,可以参考之前写的这篇文章的SSH部分

远程登录报错

  • 在本地远程登录linux 服务器系统时,提示Permission denied, please try again.
  • 原因:ssh服务默认没有开root用户的ssh权限。所以远程登录时默认下root用户是没有权限的。
  • 解决方法:要修改root的ssh权限

    • /etc/ssh/sshd_config文件中PermitRootLogin prohibit-password注释掉(前面加#号)。
    • 添加 PermitRootLogin Yes

      1
      sudo vi /etc/ssh/sshd_config

显示隐藏文件

  • 若使用桌面可视化窗口,进入该待显示的文件目录,快捷键ctrl + h则显示隐藏文件。
  • 若使用命令行,则使用命令:ls -a显示所有文件,也包括隐藏文件。

参考

要不要鼓励一下😘