CentOS7でherokuを扱う

herokuを使おうとすると、WindowsやMacになんかソフトいれないといけないです。インストーラーが用意されているので別に良いのですが、個人的にはクライアント側に公式で配布されているとはいえ使用頻度がそこまで高くないものを入れたくないというのがあります。

結論:手動でいれるほうが早い

これが全てでした。以下は記録用となります。メモとして残しておきます。手動のインストール方法ものせておきます。

余計なソフトはいれたくない

普段WindowsやMacを使っているのですが、思うのはやっぱり 余計なソフト はいれたくないというのがあります。特にコマンドで実行するようなソフトはいれたくないなーとういうのが本音です

開発に必要なソフトでは?

毎日使うソフトではないのと、ぶっちゃけワードやExcelとかのほうが入っていないと困るソフトですがコマンドで実行するソフトは 入って無くても困らない ソフトなので、極力インストールしたくないというのがあります。

gitはどうするの?

gitはクライアントソフト(GUI)があるのでそれを使っています。GUIクライアントがあるならしょうがないのでインストールしますがそいうでないならインストールしたくないというのが本音です

herokuはなぜ?インストーラーがあるよ?

PHPとかPythonとかももいえるのですが、公開するサーバーはCentOSとかLinuxであって、開発する環境(WindowsやMac)に入れて動いてもしょうがないんですよね。開発で動いても本番で動かないとなればそれは ゴミ と同じなのです。なら最初からCentOSでアップロードしたりすればいいかなーと思います。

普段開発はどうやっているの?

僕は普段からCentOSで実行したりしているので、WinやMacにPythonやPHPが動く環境は作っておりません。作る気もありません。

時間の無駄では?

そこが課題です。。。gitでプッシュしたら勝手に反映されてくれないかなーと思っています。

なぜCentOS?

herokuの公式サイトとかにはUbuntu16以降というのがあります。Ubuntuと相性良いのかわからないのですがCentOS7を僕は普段使っているのでその情報がないのと、多くはWinやMacに入れてつかうという個人的にはいらない情報なので残してみます

herokuに登録

無料アカウントでしてください。ブラウザでできます

CentOS7でheroku-CUIをインストール

ではやってみたいと思います。上手くいくと良いなーと思っております。Docker環境ではうまくいかないのでご注意ください

snapdをインストール

herokuのサイトをみると「Ubuntu 16以降」とあり、コマンドが載っています

sudo snap install heroku --classic

よくわからないですが、僕はUbuntuではないので使えません。調べると snap というコマンドがあるのでそれを使うみたいです。

[root@localhost ~]# yum install snapd

これでインストールできます

起動

インストールできたので起動します

[root@localhost ~]# systemctl start snapd
[root@localhost ~]# systemctl status snapd
● snapd.service - Snap Daemon
   Loaded: loaded (/usr/lib/systemd/system/snapd.service; disabled; vendor preset: disabled)
   Active: active (running) since 火 2020-06-30 22:16:21 JST; 4s ago
 Main PID: 2637 (snapd)
    Tasks: 8
   Memory: 12.1M
   CGroup: /system.slice/snapd.service
           mq2637 /usr/libexec/snapd/snapd

 6月 30 22:16:21 localhost.localdomain systemd[1]: Starting Snap Daemon...
 6月 30 22:16:21 localhost.localdomain snapd[2637]: AppArmor status: apparmor not enabled
 6月 30 22:16:21 localhost.localdomain snapd[2637]: daemon.go:343: started snapd/2.45-1.el7 (series 16; classic; devmode) centos/7 (amd64) linux/3.10.0-1127.el7.x86_64.
 6月 30 22:16:21 localhost.localdomain snapd[2637]: daemon.go:436: adjusting startup timeout by 30s (pessimistic estimate of 30s plus 5s per snap)
 6月 30 22:16:21 localhost.localdomain snapd[2637]: helpers.go:105: error trying to compare the snap system key: system-key missing on disk
 6月 30 22:16:21 localhost.localdomain systemd[1]: Started Snap Daemon.

無事できました。

herokuのインストール

herokuがあるのか確認をします

[root@localhost ~]# snap find heroku
Name             Version  Publisher       Notes    Summary
heroku           v7.42.0  heroku?         classic  CLI client for Heroku
postbird         0.8.4    pavel-evst      -        PostgreSQL GUI client
heroku-cli-test  6.12.10  karatecowboy    -        Heroku CLI
u1test20160809   5.2.19   u1test20160809  -        The Heroku CLI is used to manage Heroku apps from the command line.
[root@localhost ~]#

ありました。herokuのインストールをしてみます

[root@localhost ~]# snap install heroku --classic
error: cannot install "heroku": classic confinement requires snaps under /snap or symlink from
       /snap to /var/lib/snapd/snap

エラーですね。。。リンク貼れって事でしょうか。。。貼ります

[root@localhost ~]# ln -s /var/lib/snapd/snap /snap
[root@localhost ~]# snap install heroku --classic
2020-06-30T22:23:43+09:00 INFO Waiting for automatic snapd restart...
Warning: /var/lib/snapd/snap/bin was not found in your $PATH. If you've not restarted your session
         since you installed snapd, try doing that. Please see https://forum.snapcraft.io/t/9469
         for more details.

heroku v7.42.0 from Heroku? installed

インストールできたっぽいです

herokuコマンド実行

herokuのコマンドを実行してみます

[root@localhost ~]# heroku login
-bash: heroku: コマンドが見つかりません

諦めた

snapだとどうやらPATHが通ってなくて通さないといけないみたいです。正直面倒なのでsnap使わなくてもいいやとなりました。

手動でインストール

手動でインストールしていきます

[root@localhost lib]# cd /usr/local/lib
[root@localhost lib]# wget https://cli-assets.heroku.com/heroku-linux-x64.tar.gz

ファイルの解凍

[root@localhost lib] tar xvzf heroku-linux-x64.tar.gz -C /usr/local/lib

リンクを貼ります

[root@localhost lib] ln -s /usr/local/lib/heroku/bin/heroku /usr/local/bin/heroku

確認

[root@localhost lib]# heroku --version
heroku/7.42.1 linux-x64 node-v12.16.2

ログインしてみる

[root@localhost /]# heroku login
heroku: Press any key to open up the browser to login or q to exit:
Opening browser to https://cli-auth.heroku.com/auth/cli/browser/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx
 ?   Warning: Cannot open browser.
Logging in... done
Logged in as test@example.jp
[root@localhost /]#

できました

結論

Snapより自分でいれるほうが早い

個人支援・寄付について

サイトラボではBuildreeの開発などのため、現在個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではkyashというサービスをつかっております。ビットコインでも受け付けております。