蚊章汇 - Christopher Shaw
type: channel
link: https://linuxcn.bwsl.wang/author/851/
description: Christopher Shaw
items: 我的冒险旅程之迁移回 Windows
items: 如何安装并设置 Vagrant

我的冒险旅程之迁移回 Windows
type: item
date: 2018-04-13T16:09:06+08:00
description: 我已经主要使用 Linux 大约 10 年了，而且主要是 Ubuntu。但在最新发布的版本中，我决定重新回到我通常不喜欢的操作系统： Windows 10。我一直是 Linux 的粉丝，我最喜欢的两个发行版是 Debian 和 Ubuntu。现今作为一个服务器操作系统，Linux 是完美无暇的，但在桌面上一直存在不同程度的问题。最近一系列的问题让我意识到，我不需要使用 Linux 作为我的桌面操作系统，我仍然是一个 Linux 粉丝，但基于我安装 Ubuntu 17.10 的经验，我已经决定回到 Windows。什么使我选择了回归问题是，当 Ubuntu 17.10 出来后，我像往常一样进行全新安装，但遇到了一些非常奇怪的新问题。Dell D3100 Dock 不再工作（包括临时规避方案也没用）Ubuntu 意外死机（随机）双击桌面上的图标没反应使用 HUD 搜索诸如“tweaks”之类的程序会尝试安装 META 桌面版本GUI 比标准的 GNOME 感觉更糟糕现在我确实考虑回到使用 Ubuntu 16.04 或另一个发行版，但是我觉得 Unity 7 是最精致的桌面环境，而另外唯一一个优雅且稳定的是 Windows 10。除此之外，使用 Linux 而不是使用 Windows 也有一些固有的问题，如：大多数商用软件不可用，E.G Maya、 PhotoShop、 Microsoft Office（大多数情况下，替代品并不相同）等等。大多数游戏都没有移植到 Linux 上，包括来自 EA、 Rockstar Ect. 等主要工作室的游戏。对于大多数硬件来说，其 Linux 驱动程序是厂商的次要考虑。在决定使用 Windows 之前，我确实考虑过其他发行版和操作系统。与此同时，我看到了更多的“微软爱 Linux ”的行动，并且了解了 WSL。他们的新开发者的关注角度对我来说很有意思，于是我试了一下。我在 Windows 找到了什么我使用计算机主要是为了编程，我也使用虚拟机、git 和 ssh，并且大部分工作依赖于 bash。我偶尔也会玩游戏，观看 netflix 和一些轻松的办公室工作。总之，我期待在 Ubuntu 中保留当前的工作流程并将其移植到 Windows 上。我也想利用 Windows 的优点。所有的 PC 游戏支持 Windows大多数程序是原生的微软办公软件虽然使用 Windows 有很多坑，但是我打算正确对待它，所以我不担心一般的 Windows 故障，例如病毒和恶意软件。Windows 的子系统 Linux（Windows 上的 Ubuntu 中的 Bash）微软与 Canonical 的密切合作将 Ubuntu 带到了 Windows 上。在经过快速设置和启动程序之后，你将拥有非常熟悉的 bash 界面。我一直在研究其局限性，但是在写这篇文章时我碰到的唯一真正的限制是它从硬件中抽象了出来。例如，lsblk 不会显示你有什么分区，因为子系统里的 Ubuntu 没有提供这些信息。但是除了访问底层工具之外，我发现其体验非常熟悉，也很棒。我在下面的工作流程中使用了它。生成 SSH 密钥对使用 Git 和 Github 来管理我的仓库SSH 到几个服务器，包括不用密码为本地数据库运行 MySQL监视系统资源使用 Vim 编辑配置文件运行 Bash 脚本运行本地 Web 服务器运行 PHP、NodeJS到目前为止，它已经被证明是非常强大的工具。除了是在 Windows 10 用户界面之中，我的工作流程感觉和我在 Ubuntu 上几乎一样。尽管我的多数工作可以在 WSL 中处理，但我仍然打算通过虚拟机进行更深入的工作，这可能超出了 WSL 的范围。不需要用 Wine我遇到的另一个主要问题是兼容性问题。我很少使用 Wine 来使用 Windows 软件。（LCTT 译注：Wine 是可以使 Linux 上运行 Windows 应用的软件）但是有时它是必需的，尽管通常体验不是很好。HeidiSQL我首先安装的程序之一是 HeidiSQL，它是我最喜欢的数据库客户端之一。它可以在 Wine 下工作，但是感觉很不好，所以我在 Linux 下丢掉它而使用了 MySQL Workbench。回到了 Windows 中，就像一个可靠的老朋友回来了。游戏平台 / Steam没有游戏的 Windows 电脑是无法想象的。我从 Steam 的网站上安装了它，我的 Linux 游戏，加上我的 Windows 游戏就变大了 5 倍，并且包括 GTA V （LCTT 译注： GTA V 是一款名叫侠盗飞车的游戏) 等 AAA 级游戏。而这些我在 Ubuntu 中只能梦想。我对 SteamOS 有很大的期望，并且一直会持续如此。但是我认为在可预见的将…

如何安装并设置 Vagrant
type: item
date: 2018-02-01T22:45:00+08:00
description: Vagrant 对于虚拟机来说是一个强大的工具，在这里我们将研究如何在 Ubuntu 上设置和使用 Virtualbox 和 Vagrant 来提供可复制的虚拟机。虚拟机，并不复杂多年来，开发人员一直使用虚拟机作为其工作流程的一部分，允许他们交换和更改运行软件的环境，这通常是为了防止项目之间的冲突，例如需要 php 5.3 的项目 A 和需要 php 5.4 的项目 B。并且使用虚拟机意味着你只需要你正在使用的计算机就行，而不需要专用硬件来镜像你的生产环境。当多个开发人员在一个项目上工作时，它也很方便，他们都可以运行一个包含所有需求的环境，但是维护多台机器并确保所有的需求都具有相同的版本是非常困难的，这时 Vagrant 就能派上用场了。使用虚拟机的好处你的虚拟机与主机环境是分开的你可以根据你代码的要求裁剪一个定制虚拟机不会影响其他虚拟机可以运行在你的主机上无法运行的程序，例如在 Ubuntu 中运行一些只能在 Windows 运行的软件什么是 Vagrant简而言之，这是一个与虚拟机一起工作的工具，可以让你自动创建和删除虚拟机。它围绕一个名为 VagrantFile 的配置文件而工作，这个配置文件告诉 Vagrant 你想要安装的操作系统，以及一些其他选项，如 IP 和目录同步。 你还可以在虚拟机上添加一个命令的配置脚本。通过共享这个 VagrantFile，项目的所有开发人员全可以使用完全相同的虚拟机。安装要求安装 VirtualBoxVirtualBox 是运行虚拟机的程序，它可以从 Ubuntu 仓库中安装。sudo apt-get install virtualbox 安装 Vagrant对于 Vagrant 本身，你要前往 https://www.vagrantup.com/downloads.html 查看适用于你的操作系统的安装软件包。安装增强功能如果你打算与虚拟机共享任何文件夹，则需要安装以下插件。vagrant plugin install vagrant-vbguest 配置 Vagrant首先我们需要为 Vagrant 创建一个文件夹。mkdir ~/Vagrant/test-vm cd ~/Vagrant/test-vm 创建 VagrantFile：vagrant init 开启虚拟机：vagrant up 登录机器：vagrant-ssh 此时，你将拥有一个基本的 vagrant 机器，以及一个名为 VagrantFile 的文件。定制在上面的步骤中创建的 VagrantFile 看起来类似于以下内容VagrantFile：# -*- mode: ruby -*- # vi: set ft=ruby : # All Vagrant configuration is done below. The "2" in Vagrant.configure # configures the configuration version (we support older styles for # backwards compatibility). Please don't change it unless you know what # you're doing. Vagrant.configure("2") do |config| # The most common configuration options are documented and commented below. # For a complete reference, please see the online documentation at # https://docs.vagrantup.com. # Every Vagrant development environment requires a box. You can search for # boxes at https://vagrantcloud.com/search. config.vm.box = "base" # Disable automatic box update checking. If you disable this, then # boxes will only be checked for updates when the user runs # `vagrant box outdated`. This is not recommended. # config.vm.box_check_update = false # Create a forwarded port mapping which allows access to a specific po…