asdf is a single CLI tool for managing multiple runtime versions. It extend with a simple plugin system to install your favourite language: Dart, Elixir, Flutter, Golang (Go), Java, Node.js, Python, Ruby …
This article is about how to use asdf and Node.js plugin to install multiple Node.js versions on macOS with the Homebrew package manager.
OSSImport is a free tool created by the Alibaba Cloud product team to assist with data backup and migration into the Alibaba Cloud Object Storage Service (OSS). Using OSSImport data can be migrated from either local storage or from third party cloud platforms. Currently supported data sources include Qiniu, Baidu BOS, AWS S3, Azure Blob, Youpai Cloud, Tencent Cloud COS, Kingsoft KS3, HTTP, and other OSS buckets.
Using MigrationComments, you can simply add comments during your migrations. Or if you already have existing data structures, just add the comments afterwards in a separate migration. And of course you can always modify and delete these comments in later migrations.
So where are these comments used? Firstly, they will be included in your schema.rb dump which is where your IDE (e.g. RubyMine, VS Code) should be learning about your model structure. This means that they’ll be available at any point in your project. Additionally, if you are using the 'annotate’ gem, these comments will be added to the annotations that are generated within your model.rb file.
Github or Gitlab use ~/.ssh/id_rsa as the default SSH private key. But sometimes you need more accounts than one for access to Github or Gitlab and similar tools. For example you can have one account for your projects at home and second account for your company.
There are three ways to Use multiple SSH private keys within git commands.
Or, Enclose the path (or the path including the server) with single or double quotes
1 2 3 4
# Single quotation mark, including server address scp '[email protected]:/Users/cloudolife/.ssh/*' ~/.ssh/ # Double quotation mark, without server address scp [email protected]:"/Users/cloudolife/.ssh/*" ~/.ssh/
But sometimes the above two methods using wildcards for local paths are invalid, then refer to next:
Option 2, Switch to /bin/bash
/bin/bash does not have the problem of expanding *.
FAQs about using Vagrant for building and managing virtual machine environments
Vagrant is a tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the “works on my machine” excuse a relic of the past.
First, edit Vagrant file to add external disk configuration.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
config.vm.provider "virtualbox" do |vb| # Display the VirtualBox GUI when booting the machine vb.gui = true # Customize the amount of memory on the VM: vb.memory = "1024"
The following error was experienced: #<Vagrant::Errors::VBoxManageError: There was an error while executing `VBoxManage`, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below.
The following error was experienced: #<Vagrant::Errors::VBoxManageError: There was an error while executing `VBoxManage`, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below.
Stderr: 0%... Progress state: VBOX_E_FILE_ERROR VBoxManage: error: Failed to create medium VBoxManage: error: Could not create the medium storage unit '/Users/cloudolife/col-vagrant/disks/disk-1.vdi'. VBoxManage: error: VDI: cannot create image '/Users/cloudolife/col-vagrant/disks/disk-1.vdi' (VERR_ALREADY_EXISTS) VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium VBoxManage: error: Context: "RTEXITCODE handleCreateMedium(HandlerArg*)" at line 450 of file VBoxManageDisk.cpp > Please fix this customization and try again.
There is already a disk disk-1.
Check the UUID of the disk disk-1
1 2 3 4 5
$ VBoxManage list hdds ... UUID: <UUID> Location: /home/vagrant/vagrants/vagrant-example/disks/disk-1.vdi ...