LoginSignup
1
2

More than 5 years have passed since last update.

Check! Azure CLI 2.0 Preview を Bash on Windows にインストールする(のトラブルシューティング)

Last updated at Posted at 2016-11-10

こんばんは、 @dz_ こと大平かづみです。

Prologue - はじめに

Azure CLI 2.0 (Preview) を導入しようと思います!

前までは Node.js 製でしたが、今回からは python に切り替わったようです。一通りの OS で利用可能で、それぞれのインストール方法は「Instructions per Platform and Version | Preview Install Guide | Azure CLI 2.0」で紹介されています。

さて、私は愛機 Surface の Ubuntu on Bash on Windows に導入しますよ、っと始めたところで… 依存パッケージがインストールできない(´・ω・`) 試行錯誤の末、解決できたので共有します。

※ もしかすると、単に自分の環境が壊れていただけかもしれません… が、もしどなたかが類似のエラーでつまづいたときに参考になるよう、書き留めておきます。

Bash On Windows に Azure CLI 2.0 をインストールする

Bash on Windows は Ubuntu 14.04 と同様に、いくつか依存パッケージをインストールします。

インストール手順の抜粋
$ sudo apt-get update
$ sudo apt-get install -y libssl-dev libffi-dev
$ sudo apt-get install -y python-dev
$ curl -L https://aka.ms/InstallAzureCli | sudo bash

まずは apt-get update をして、次へ~

だがしかし、依存モジュール libssl-dev がインストールできない

エラー現象

この libssl-dev が以下のエラーでインストールできず…

$ sudo apt-get install libssl-dev

パッケージリストを読み込んでいます... 完了0%
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の問題を解決するために 'apt-get -f install' を実行する必要があるかもしれません:
以下のパッケージには満たせない依存関係があります:
 code : 依存: libnotify4 しかし、インストールされようとしていません
        依存: libnss3 しかし、インストールされようとしていません
 libssl-dev : 依存: libssl1.0.0 (= 1.0.1f-1ubuntu2.21) しかし、1.0.1f-1ubuntu2.18 はインストールされようとしています
              依存: zlib1g-dev しかし、インストールされようとしていません
              推奨: libssl-doc しかし、インストールされようとしていません
E: 未解決の依存関係です。'apt-get -f install' を実行してみてください (または解法を明示してください)

インストール済みのパッケージを確認してみると、どうやら、 libssl1.0.0 が古いようで?

$ dpkg -l | grep ssl

ii  libgnutls-openssl27:amd64        2.12.23-12ubuntu2.5              amd64        GNU TLS library - OpenSSL wrapper
ii  libssl1.0.0:amd64                1.0.1f-1ubuntu2.18               amd64        Secure Sockets Layer toolkit - shared libraries
ii  openssl                          1.0.1f-1ubuntu2.18               amd64        Secure Sockets Layer toolkit - cryptographic utility
ii  python-openssl                   0.13-2ubuntu6                    amd64        Python 2 wrapper around the OpenSSL library

解決!

libssl1.0.0upgrade したら解決しました!

もしかすると gdk 周りでインストールが失敗するかもしれませんので、 -f を付けました。

$ sudo apt-get -f upgrade libssl1.0.0

パッケージリストを読み込んでいます... 完了0%
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
依存関係を解決しています ... 完了
アップグレードパッケージを検出しています ... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libice6 libsm6 libxmu6 libxt6 os-prober rlwrap
これを削除するには 'apt-get autoremove' を利用してください。
以下のパッケージが新たにインストールされます:
  acl at-spi2-core colord dconf-gsettings-backend dconf-service fontconfig
  fontconfig-config fonts-dejavu-core hicolor-icon-theme libasound2
  libasound2-data libatk-bridge2.0-0 libatk1.0-0 libatk1.0-data libatspi2.0-0
  libavahi-client3 libavahi-common-data libavahi-common3 libcairo-gobject2
  libcairo2 libcanberra-gtk3-0 libcanberra-gtk3-module libcanberra0 libcolord1
  libcolorhug1 libcups2 libdatrie1 libdconf1 libexif12 libfontconfig1 libgd3
  libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common libgphoto2-6 libgphoto2-l10n
  libgphoto2-port10 libgraphite2-3 libgtk-3-0 libgtk-3-bin libgtk-3-common
  libgudev-1.0-0 libgusb2 libharfbuzz0b libieee1284-3 libjasper1 libjbig0
  libjpeg-turbo8 libjpeg8 liblcms2-2 libltdl7 libnotify4 libnspr4 libnss3
  libnss3-nssdb libogg0 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0
  libpixman-1-0 libsane libsane-common libtdb1 libthai-data libthai0 libtiff5
  libv4l-0 libv4lconvert0 libvorbis0a libvorbisfile3 libvpx1
  libwayland-client0 libwayland-cursor0 libxcb-render0 libxcb-shm0
  libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxi6 libxinerama1
  libxkbcommon0 libxpm4 libxrandr2 libxrender1 libxtst6 notification-daemon
  sound-theme-freedesktop
以下のパッケージはアップグレードされます:
  apport apt apt-transport-https apt-utils base-files bash-completion
  bind9-host cloud-init curl dbus dnsutils dosfstools dpkg gcc-4.8-base gnupg
  gpgv initramfs-tools initramfs-tools-bin isc-dhcp-client isc-dhcp-common
  klibc-utils libapt-inst1.5 libapt-pkg4.12 libbind9-90 libc-bin libc6
  libcurl3 libcurl3-gnutls libdbus-1-3 libdns100 libdrm2 libexpat1 libgcrypt11
  libidn11 libisc95 libisccc90 libisccfg90 libklibc libldap-2.4-2 liblwres90
  libpam-systemd libpcre3 libpython3.4-minimal libpython3.4-stdlib libssl1.0.0
  libstdc++6 libsystemd-daemon0 libsystemd-login0 libtasn1-6 libudev1 libxml2
  lsb-base lsb-release multiarch-support nodejs ntpdate openssh-client
  openssh-server openssh-sftp-server openssl pollinate python3-apport
  python3-problem-report python3-update-manager python3.4 python3.4-minimal
  sudo systemd-services tzdata udev update-manager-core update-notifier-common
  wget
アップグレード: 73 個、新規インストール: 87 個、削除: 0 個、保留: 0 個。
1 個のパッケージが完全にインストールまたは削除されていません。
47.6 MB のアーカイブを取得する必要があります。
この操作後に追加で 55.6 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libc-bin amd64 2.19-0ubuntu6.9 [1,165 kB]
取得:2 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libc6 amd64 2.19-0ubuntu6.9 [4,717 kB]
7% [2 libc6 2,040 kB/4,717 kB 43%]                         84.9 kB/s 8分 42秒
9% [2 libc6 3,204 kB/4,717 kB 68%]                        70.1 kB/s 10分 16秒

... <略> ...

備考

なお、私の場合は途中で以下のエラーが出ました。

... <略> ...

dpkg: アーカイブ /var/cache/apt/archives/openssh-server_1%3a6.6p1-2ubuntu2.8_amd64.deb の処理中にエラーが発生しました (--unpack):
 '/usr/sbin/sshd.dpkg-new' をオープンできません: 許可がありません
dmesg: klogctl failed: 関数は実装されていません
                                   initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: 接続を拒否されました
runlevel:/var/run/utmp: そのようなファイルやディレクトリはありません
invoke-rc.d: policy-rc.d denied execution of restart.
.../openssh-client_1%3a6.6p1-2ubuntu2.8_amd64.deb を展開する準備をしています ...
openssh-client (1:6.6p1-2ubuntu2.8)(1:6.6p1-2ubuntu2.6 に) 上書き展開しています ...
.../openssl_1.0.1f-1ubuntu2.21_amd64.deb を展開する準備をしています ...
openssl (1.0.1f-1ubuntu2.21)(1.0.1f-1ubuntu2.18 に) 上書き展開しています ...
.../wget_1.15-1ubuntu1.14.04.2_amd64.deb を展開する準備をしています ...
wget (1.15-1ubuntu1.14.04.2)(1.15-1ubuntu1.14.04.1 に) 上書き展開しています ...

... <略> ...

処理中にエラーが発生しました:
 /var/cache/apt/archives/openssh-server_1%3a6.6p1-2ubuntu2.8_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

パーミッションエラーっぽいですね、処理が長すぎて途中で sudo のキャッシュ?が切れてしまったのかもしれません。再度同コマンドを流すことで、インストールを完了することができました。

いざ、Azure CLI 2.0 をインストール!

上記で libssl-dev がインストールできました。残りの依存パッケージをインストールし、いざ!

依存パッケージ

  • libssl-dev (上記でインストール済み)
  • libffi-dev
  • python-dev

Azure CLI 2.0 自体のインストール

$ curl -L https://aka.ms/InstallAzureCli | sudo bash

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   167  100   167    0     0    157      0  0:00:01  0:00:01 --:--:--   157
100  1048  100  1048    0     0    427      0  0:00:02  0:00:02 --:--:--  1151
Downloading Azure CLI install script from https://azurecliprod.blob.core.windows.net/install.py to /tmp/azure_cli_install_tmp_sFPN.
######################################################################## 100.0%
Running install script.
In what directory would you like to place the install? (leave blank to use /usr/local/az):
We will install at '/usr/local/az'.
In what directory would you like to place the executable? (leave blank to use /usr/local/bin):
The executable will be in '/usr/local/bin'.

... <略> ...

Installation successful.
Enable shell/tab completion? [y/N]: y
Modifying '/home/user/.bashrc' to enable tab completion.
Backed up '/home/user/.bashrc' to '/home/user/.bashrc.backup'
Tab completion set up complete.
** Run `exec -l $SHELL` to restart your shell. **
If tab completion is not activated, verify that '/home/user/.bashrc' is sourced by your shell.
Run the CLI with /usr/local/bin/az --help

最後にシェルを再起動してね、とのことで、えいやっ!

$ exec -l $SHELL

おおーー、 az コマンドが使えるようになり、タブ補完でサブコマンドが表示されるようになりましたー!ヾ(o´∀`o)ノ

Epilogue - おわりに

これでより便利に Azure を使えるぞ!

そして、当初の目的だった Azure Container Service の Kubernetes を起動するぞ~ (*ノωノ)

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2