Heroku bashシェルで使用できるテキストエディターは何ですか?[閉まっている]


120

CedarベースのHerokuアプリでhttpd.confを更新しようとしています。Heroku bashに

 heroku run bash

そしてApacheの下でconf dirを見つけました。しかし、vi、vim、emacsのいずれかのエディターを開こうとすると、これらのプログラムが見つかりません。Herokuでconfファイルをどのように編集しますか?


回答:


131

私は最近、元の要旨heroku cliプラグインに変えました。

インストールするだけです:

heroku plugins:install https://github.com/naaman/heroku-vim

そして使用:

heroku vim

heroku vimコマンドは、bashシェルにあなたをドロップしますvimあなたの上に設置します$PATH。あなたがしなければならないすべてはあなたの指をタイプするheroku vimように再訓練することですheroku run bash


5
@dwenaus dynoでのvimの使用は、トラブルシューティングツールにすぎません。実行中のdynoに接続することはできません。また、可能であれば(ハックで可能です)、dyno内で行った変更はスラッグ内に保持されません。つまり、アプリを再起動すると(24時間ごと)、行った変更は失われます。
Naaman Newbold、2014

4
@dwenausが使用できるもう1つのトラブルシューティングツールです。これをQA /ステージングアプリで使用することを強くお勧めします。本番環境ではありません-ですhbuild。gitのコミットなしでソースコードを変更できるため、gitの履歴を変更することなくHerokuで何かを試すことができます。
Naaman Newbold、2014

5
gitの履歴を台無しにしない別の方法は、ブランチで作業し、後でマスターにマージする前にクリーンアップすることです。ブランチの名前がの場合はdebug-heroku、次のようにデプロイしますgit push heroku debug-heroku:master
Zubin

8
これがもう機能しているかわからない-糸は「gitリポジトリのダウンロードを拒否しています...コミットハッシュなしでHTTPS経由で...-証明書エラーの可能性がありますか?」
Tim Malone 2017年

3
この回答は実行時に利用できなくなったheroku-16ため、スタックでは機能しなくなりましたlibxt。@funkenstrahlen
ジョナ

64

プラグインをいじりたくなく、ナノのコピーを1回限りのdynoに入れたい場合は、次を実行します。

mkdir /app/nano
curl https://github.com/Ehryk/heroku-nano/raw/master/heroku-nano-2.5.1/nano.tar.gz --location --silent | tar xz -C /app/nano
export PATH=$PATH:/app/nano

これにより、このプラグインからnanoのコピーがダウンロードされ、PATHに配置されます。


3
完璧です。これで、必要に応じて構成を編集できます
フェリペ

4
動作していないようです-nanoを実行するとエラーが発生しますError opening terminal: unknown.
Lewy Blue

@looeeeまだ私のために働いています。たまたま新しいheroku-18スタックにいますか?
James

ドックにも活躍。ありがとう@James
judasane


22

1つのセッションでvimをダウンロードしてインストールできるようです。

#!/usr/bin/env bash
curl https://s3.amazonaws.com/heroku-jvm-buildpack-vi/vim-7.3.tar.gz --output vim.tar.gz
mkdir vim && tar xzvf vim.tar.gz -C vim
export PATH=$PATH:/app/vim/bin

このアイデアはここで見つかりまし


ちょうど私が必要なもの!コマンドを編集して実行しました。これでherokuは私の変更を一晩で削除できるようになり、仕事が完了しました!
mika 2016


15

それを使用してファイルを編集できたとしてもvi、ファイルシステムは一時的なものであるため、問題を解決できない可能性があります。意味...経由でファイルを編集する場合、heroku run bash実際には他のdynoのファイルを変更していません。すべてのdynoのファイルを変更するには、Gitリポジトリにプッシュするものを変更するか、ビルドパックを変更する必要があります。詳細:https :
//devcenter.heroku.com/articles/oneoff-admin-ps#formation-dynos-vs-oneoff-dynos


21
から環境をデバッグしたいheroku run bashので、vi / vimは非常に役に立ちます。
ブライアン・タキタ2013年

3
これで、実際のdynoにで接続できますheroku ps:exec
ニコラスモーリー

@NicholasMorleyできますが、サイト/アプリの通知をファイルにどのように変更しますか?
x-yuri

@ x-yuri Herokuでは、そのようなことはできません。変更を加えるには、アプリを再デプロイする必要があります。
ジェームズワード

実際にできます。サイトを実行しているdynoを取得し、そこにSSHでログインし(heroku ps:exec)、ファイルを変更し、サーバーの2番目のインスタンスを起動し、ポートをdynoに転送します(heroku ps:forward 3000)。その後、curl localhost:3000
x-yuri



6

Herokuでのデバッグ

ダイノを準備する

インストール後、naaman/heroku-vimを介して新しい一時的なdynoを作成できますheroku vim。他の投稿で正しく指摘されているように、変更は伝播されないため、ブラウザーで表示したときに変更を確認できませんが、実際にはdyno自体から変更を表示できます。

私はカールを介した「ブラウジング」だけを実験しましlynxたが、そこに乗ることができた場合、または、sshトンネルを取得した方がいい場合は、本当に素晴らしいでしょう。

サーバーを起動する

heroku-vimをインスタンス化するときにWebサーバーは実行されないため、自分で実行する必要があります。私の例では、phpを実行しています。

~ $ cat Procfile
web: vendor/bin/heroku-php-apache2

このコマンドは自分で開始できます!

~ $ vendor/bin/heroku-php-apache2 2>/dev/null &
[2] 845

バックグラウンドで実行されています!

あなたのウェブサイトをカールする

Dynosはランダムなポートで起動します。$PORT変数なので、幸いにもどちらを使用するかわかります。

~ $ curl localhost:$PORT
Hello World!

編集

ここでvimを実行しますが、ファイルを保存して再度カールすると、変更は表示されません。どこにキャッシュされているのかわかりませんが、キャッシュされています。サーバーを終了して再起動する必要があります。

サーバーを再起動する

  1. プロセスIDを見つける

    ~ $ ps -f
    UID        PID  PPID  C STIME TTY          TIME CMD
    u6897        3     1  0 05:34 ?        00:00:00 bash
    u6897      582     3  0 05:53 ?        00:00:00 bash vendor/bin/heroku-php-apache2
    u6897      652   582  0 05:53 ?        00:00:00 bash vendor/bin/heroku-php-apache2
    u6897      653   582  0 05:53 ?        00:00:00 bash vendor/bin/heroku-php-apache2

    これ582が親IDです-これを使用してください。

    kill 582
    
  2. 1秒待ってから、サーバーを再起動します(新しいプロセスIDを取得します!)。同じコマンドでカーリングすると、更新されたページが表示されます。


実際にポート転送し、の代わりにブラウザを使用できますcurl
x-yuri

5

Herokuでファイルを編集する緊急の方法:

  1. そのコピーをリモートホストに配置します。Gistを使用する
  2. Gistでファイルを編集し、終了したら未加工のURLを取得します
  3. wget Heroku bashの生のURL
  4. 取得したファイルを元のファイルのパスにコピーする

プラグインが必要ないので、このソリューションは1回限りのニーズに最適です。
ステファン・

2

NanoまたはVimを使用してHeroku Dynosでファイルを編集する方法に関する完全な記事を書きましたが、基本的には次のとおりです。

  • コマンドラインを使用できます:

    curl https://s3.amazonaws.com/heroku-jvm-buildpack-vi/vim-7.3.tar.gz --output vim.tar.gz mkdir vim && tar xzvf vim.tar.gz -C vim export PATH=$PATH:/app/vim/bin

  • Herokuプラグインを使用できます:heroku-vim
  • Herokuビルドパックを使用できます:heroku-buildpack-vip

それが役に立てば幸い!


プラグインが機能しませんでした:vim: error while loading shared libraries: libXt.so.6: cannot open shared object file: No such file or directory。しかし、ビルドパックは機能しました。
x-yuri

2

ファイルの内容だけを表示する場合は、次のようにします。

  1. ファイルが置かれているフォルダーにcdします。 $ cd folder
  2. catコマンド+ファイル名を実行します。 $ cat filename.csv


0

サーバーがphpを実行する場合の代替方法は、PHPファイルマネージャーをアップロードすることです。これは単一のファイルであり、次の場所からダウンロードできます。

http://phpfm.sourceforge.net/


0

dynoでファイルを変更し、Herokuにプッシュせずに結果を確認できます。

  1. heroku-buildpack-vimビルドパックをインストールします。

    $ heroku buildpacks:add \
    https://github.com/carloluis/heroku-buildpack-vim
    
  2. ダイノへのSSH:

    $ heroku ps:exec
    
  3. start.shを作成して実行します。

    #!/usr/bin/env bash
    set -eu
    export DATABASE_URL=...
    bin/rails s -p 4000
    
  4. 転送ポート4000(2番目のコンソール):

    $ heroku ps:forward
    
  5. localhost:4000ブラウザで開きます。

  6. 停止start.sh、ファイルの変更、再開、ブラウザページの更新。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.