Ubuntu 16.04 LTS に open-vm-tools をインストールする(VMware Workstation)

VMware Workstation に VMware Tools をいつものようにインストールしようとしたら今は open-vm-tools 入れるのが普通やで?あんちゃん正気か?というメッセージが出てきた。

wnoguchi@pgubuntu1604:~/vmware-tools-distrib$ sudo ./vmware-install.pl 
[sudo] wnoguchi のパスワード: 
open-vm-tools are available from the OS vendor and VMware recommends using 
open-vm-tools. See http://kb.vmware.com/kb/2073803 for more information.
Do you still want to proceed with this legacy installer? [no] no

前から open-vm-tools を入れるのが最近のトレンドと知ってはいたが、何度目かこう聞かれたので簡単な手順をメモ。
URL だけ書いてあってどうやってインストールするとか書いてなかったから、open とかいうぐらいだからどうせパッケージとしてあるだろうと思って検索したらあった。

wnoguchi@pgubuntu1604:~/vmware-tools-distrib$ sudo apt-cache search open-vm-tools
open-vm-tools - Open VMware Tools for virtual machines hosted on VMware (CLI)
open-vm-tools-dev - Open VMware Tools for virtual machines hosted on VMware (development)
open-vm-tools-desktop - Open VMware Tools for virtual machines hosted on VMware (GUI)
open-vm-tools-dkms - Open VMware Tools vmxnet kernel module (deprecated)

私の入れてるのはデスクトップ版の Ubuntu なので open-vm-tools-desktop 入れれば良さそう。

sudo apt-get -y install open-vm-tools-desktop

これで再起動すればおわり。

Ubuntu に open-vm-tools を入れる(VMware Workstation)

VMware Tools 入れようと思ったら open-vm-tools 入れろって言われた。
VMware Tools のオープンソース実装らしい。
だったら VMware Tools の tarball 展開する前に言えって思ったけど、入れてみる。

URL に飛んでみたらダウンロードページらしきものが見当たらないので apt を検索してみたらあった。
それを入れる。
Linux 系は gcc やら他のものいろいろ入れないといけないので、コンパイル済みのバイナリを提供しているらしい。
デスクトップ環境なら -desktop を、 Server 環境の場合は無印(CLI版)を入れる。

sudo apt-get -y install open-vm-tools-desktop
  1. vmware/open-vm-tools: Official repository of VMware open-vm-tools project
  2. Linux仮想マシンでVMware Toolsではなくopen-vm-toolsを使う | 仮想(VMware & Hyper-V)/クラウド・エンジニア技術ブログ
  3. open-vm-tools – Google 検索

GNOME のディレクトリ名を日本語から英語に直す

もう何回同じこと検索しているのかわからないので記す。
RedHad 系(RHEL, Fedora, CentOS)、 Ubuntu であろうがなかろうが GTK 使ってるディスプレイマネージャはこの方法で修正できる。


LANG=C xdg-user-dirs-gtk-update

特に日本語ディレクトリ名にしょっちゅう里心がつく人でなければ二度と聞くなチェックボックスにチェックを入れる。
これで完了。

ホームディレクトリのフォルダ名を日本語から英語に変更するには - @IT

Ubuntu Server 14.04 LTS から 16.04 LTS にアップグレードした

最初はプレーンな Jenkins しか入っていないからクリーンインストールしたかったんだけど、
サーバマシンが古すぎるからなのか 16.04 のインストールイメージは NIC を認識しない。
ドライバを探してきて入れるのがだるいのでアップグレードすることに決めた。

まず以下のアップグレードマネージャを入れる。

$ sudo apt-get install update-manager-core

ここで一つ注意。

sudo vim /etc/update-manager/release-upgrades

Prompt=normal にする必要がある。

# Default behavior for the release upgrader.

[DEFAULT]
# Default prompting behavior, valid options:
#
#  never  - Never check for a new release.
#  normal - Check to see if a new release is available.  If more than one new
#           release is found, the release upgrader will attempt to upgrade to
#           the release that immediately succeeds the currently-running
#           release.
#  lts    - Check to see if a new LTS release is available.  The upgrader
#           will attempt to upgrade to the first LTS release available after
#           the currently-running one.  Note that this option should not be
#           used if the currently-running release is not itself an LTS
#           release, since in that case the upgrader won't be able to
#           determine if a newer release is available.
#Prompt=lts
Prompt=normal
wnoguchi@phy2:~$ sudo do-release-upgrade
Checking for a new Ubuntu release
Get:1 Upgrade tool signature [198 B]
Get:2 Upgrade tool [1230 kB]
Fetched 1230 kB in 0s (0 B/s)
authenticate 'wily.tar.gz' against 'wily.tar.gz.gpg'
extracting 'wily.tar.gz'
[screen is terminating]

Reading cache

Checking package manager

Continue running under SSH?

This session appears to be running under ssh. It is not recommended
to perform a upgrade over ssh currently because in case of failure it
is harder to recover.

If you continue, an additional ssh daemon will be started at port
'1022'.
Do you want to continue?

Continue [yN] N
=== Command terminated with exit status 1 (Thu May  5 13:20:06 2016) ===

まあ、 screen が立ち上がっているようなので、大丈夫みたいだが。

Ign http://us.archive.ubuntu.com trusty/main Translation-en_US
Ign http://us.archive.ubuntu.com trusty/multiverse Translation-en_US
Ign http://us.archive.ubuntu.com trusty/restricted Translation-en_US
Ign http://us.archive.ubuntu.com trusty/universe Translation-en_US
Fetched 5,083 kB in 6s (13.6 MB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
Building data structures... Done

Updating repository information

Third party sources disabled

Some third party entries in your sources.list were disabled. You can
re-enable them after the upgrade with the 'software-properties' tool
or your package manager.

To continue please press [ENTER]

(snip)

Reading package lists... Done
Building dependency tree
Reading state information... Done
Building data structures... Done

Calculating the changes

Calculating the changes

Do you want to start the upgrade?


1 installed package is no longer supported by Canonical. You can
still get support from the community.

6 packages are going to be removed. 131 new packages are going to be
installed. 411 packages are going to be upgraded.

You have to download a total of 317 M. This download will take about
3 minutes with your connection.

Installing the upgrade can take several hours. Once the download has
finished, the process cannot be canceled.

 Continue [yN]  Details [d]y

ちょっと時間がかかる。

「libpam, libc, libssl とかのパッケージのインストール中はいくつかのサービスをリスタートする必要があるけど、なんにも聞かずにリスタートしてもいい?」と聞かれる。

 ┌────────────┤ Configuring libc6 ├──────────────┐
 │                                                                           │
 │ There are services installed on your system which need to be restarted    │
 │ when certain libraries, such as libpam, libc, and libssl, are upgraded.   │
 │ Since these restarts may cause interruptions of service for the system,   │
 │ you will normally be prompted on each upgrade for the list of services    │
 │ you wish to restart.  You can choose this option to avoid being           │
 │ prompted; instead, all necessary restarts will be done for you            │
 │ automatically so you can avoid being asked questions on each library      │
 │ upgrade.                                                                  │
 │                                                                           │
 │ Restart services during package upgrades without asking?                  │
 │                                                                           │
 │                    <Yes>                       <No>                       │
 │                                                                           │
 └──────────────────────────────────────┘

(snip)
Unpacking psmisc (22.21-2build1) over (22.20-1ubuntu2) ...
Preparing to unpack .../ubuntu-release-upgrader-core_1%3a15.10.14.4_all.deb ...
Unpacking ubuntu-release-upgrader-core (1:15.10.14.4) over (1:0.220.8) ...
Preparing to unpack .../python3-distupgrade_1%3a15.10.14.4_all.deb ...
Unpacking python3-distupgrade (1:15.10.14.4) over (1:0.220.8) ...
Preparing to unpack .../python3-update-manager_1%3a15.10.3_all.deb ...
Unpacking python3-update-manager (1:15.10.3) over (1:0.196.14) ...
Preparing to unpack .../update-manager-core_1%3a15.10.3_all.deb ...
Unpacking update-manager-core (1:15.10.3) over (1:0.196.14) ...
Preparing to unpack .../python3-gi_3.16.2-1build1_amd64.deb ...
Unpacking python3-gi (3.16.2-1build1) over (3.12.0-1ubuntu1) ...
Preparing to unpack .../rsync_3.1.1-3ubuntu0.15.10.1_amd64.deb ...
Unpacking rsync (3.1.1-3ubuntu0.15.10.1) over (3.1.0-2ubuntu0.2) ...
Preparing to unpack .../shared-mime-info_1.3-1_amd64.deb ...
Unpacking shared-mime-info (1.3-1) over (1.2-0ubuntu3) ...
Preparing to unpack .../tcpdump_4.7.4-1ubuntu1_amd64.deb ...
(snip)

いいよー。と答える。
すごく時間がかかる。


(snip)
Setting up command-not-found (0.3ubuntu15.10.1) ...
Installing new version of config file /etc/zsh_command_not_found ...
Setting up plymouth-theme-ubuntu-text (0.9.0-0ubuntu9) ...
update-initramfs: deferring update (trigger activated)
Setting up python3-distupgrade (1:15.10.14.4) ...
Setting up python3-update-manager (1:15.10.3) ...
Setting up ubuntu-release-upgrader-core (1:15.10.14.4) ...

Configuration file '/etc/update-manager/release-upgrades'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** release-upgrades (Y/I/N/O/D/Z) [default=N] ?N

パッケージのメンテナからのリリースのディストリバージョンに上げるかどうか聞かれる。
LTS から変えたくないので N と答える。


Remove obsolete packages?


25 packages are going to be removed.

 Continue [yN]  Details [d]y
Fetched 0 B in 0s (0 B/s)

(snip)

Processing triggers for man-db (2.7.4-1) ...
Processing triggers for libc-bin (2.21-0ubuntu4.1) ...

System upgrade is complete.

Restart required

To finish the upgrade, a restart is required.
If you select 'y' the system will be restarted.

Continue [yN] y

システム再起動しろやと出るので再起動する。
なんか途中で 15.10 とかプロンプト出たんだけど大丈夫かな、心配だなあ・・・・。
16.04 にしたかったんだけど・・・。
英語読み間違えたか?


➜  ~ ssh phy2
Welcome to Ubuntu 15.10 (GNU/Linux 4.2.0-35-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Thu May  5 14:40:07 JST 2016

  System load:  1.76             Processes:           174
  Usage of /:   8.0% of 1.78TB   Users logged in:     0
  Memory usage: 5%               IP address for eth0: 172.16.216.2
  Swap usage:   0%               IP address for p7p1: 172.17.1.1

  Graph this data and manage this system at:
    https://landscape.canonical.com/

Last login: Thu May  5 13:22:30 2016
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.

あかん、、、

Normal なの確認してもう一発あげる。


wnoguchi@phy2:~$ sudo vim /etc/update-manager/release-upgrades
wnoguchi@phy2:~$ sudo do-release-upgrade

うまくいった。

rbenv + ruby-build をインスコする(Ubuntu, CentOS)

毎回めんどくせぇ・・・。
最近は anyenv というのが流行っているらしい。

動作確認をした環境

  1. CentOS 7.0

やること

必要なもの入れる

CentOS

sudo yum -y groupinstall "Development Tools"
sudo yum -y install openssl-devel zlib-devel readline-devel mysql-devel sqlite-devel git
# アセットパイプライン処理するのに必要になるので nodejs 入れる
sudo yum -y install epel-release
sudo yum -y install nodejs
# 未検証(たぶんこれ)
sudo yum -y install mariadb-server mariadb-devel
# 未検証(たぶんこれ)
sudo yum -y install postgresql-server postgresql-devel

Ubuntu

#sudo apt-get -y install libssl-dev zlib1g-dev libreadline-dev libmysqlclient-dev sqlite3 libsqlite3-dev g++ git curl
sudo apt-get -y install libssl-dev zlib1g-dev libreadline-dev sqlite3 libsqlite3-dev g++ git curl
# アセットパイプライン処理するのに必要になるので nodejs 入れる
sudo apt-get -y install nodejs
# 未検証(たぶんこれ)
sudo apt-get -y install mariadb-server libmariadbd-dev
sudo apt-get -y install postgresql libpq-dev

Git の初期設定

git config --global user.name "Wataru Noguchi"
git config --global user.email "wnoguchi.0727@gmail.com"
git config --global core.editor 'vim -c "set fenc=utf-8"'
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
# required version 1.8.x >=
git config --global push.default simple
git config --global core.precomposeunicode true
git config --global core.quotepath false

rbenv 入れる

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

以下を ~/.bash_profile に追記。

# ~/.bash_profile
export PATH="$HOME/.rbenv/bin:$PATH"
# ~/.bashrc
eval "$(rbenv init -)"
$ . ~/.bashrc
$ type rbenv
rbenv is a function

ruby-build 入れる

git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

Ruby をインストールする

  • その前に ~/.gemrc で ri, rdoc がインストールされないようにする
install: --no-document
update: --no-document
$ rbenv install --list
(snip)
  2.2.0
  2.2.1
  2.2.2
  2.2.3
  2.2.4
  2.2.5
  2.2.6
  2.2.7
  2.3.0-dev
  2.3.0-preview1
  2.3.0-preview2
  2.3.0
  2.3.1
  2.3.2
  2.3.3
  2.3.4
  2.4.0-dev
  2.4.0-preview1
  2.4.0-preview2
  2.4.0-preview3
  2.4.0-rc1
  2.4.0
  2.4.1
  2.5.0-dev

2.4.1 入れるか。

$ rbenv install 2.4.1
$ rbenv global 2.4.1
$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
$ rbenv rehash
$ rbenv exec gem install bundler --no-document
Fetching: bundler-1.10.6.gem (100%)
Successfully installed bundler-1.10.6
1 gem installed
$ bundle --version
Bundler version 1.15.4

ワンライナー

➜  ~ rbenv install 2.4.1 && rbenv global 2.4.1 && rbenv exec gem install bundler
Downloading ruby-2.4.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.bz2
Installing ruby-2.4.1...
Installed ruby-2.4.1 to /home/wnoguchi/.rbenv/versions/2.4.1

Fetching: bundler-1.15.4.gem (100%)
Successfully installed bundler-1.15.4
1 gem installed

References

  1. sstephenson/rbenv
  2. sstephenson/ruby-build
  3. rbenv and rails environement one shot install script.
  4. Linux – Gitをインストールしたら真っ先にやっておくべき初期設定 – Qiita