Какой текстовый редактор доступен в Heroku bash shell?


Я пытаюсь обновить httpd.conf в моем приложении Heroku на основе кедра. Я добрался до своего Heroku bash с

 heroku run bash

и нашел conf dir под apache. Но когда я пытаюсь открыть любой редактор vi, vim или emacs, я не могу найти ни одну из этих программ. Как вы редактируете файлы conf на Heroku?

10 93

10 ответов:

Я недавно перевел оригинальный Гист на heroku CLI plugin.

просто установить:

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

и использовать:

heroku vim

The heroku vim команда бросит вас в оболочку bash с vim установленных на вашем $PATH. Все, что вам нужно сделать, это переучивать пальцы, чтобы набрать heroku vim вместо heroku run bash.

Если вы не хотите возиться с плагинами и просто хотите получить копию nano в своем одноразовом 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 из плагин и поставить его на вашем пути.

здесь ed Если ты мазохист.

похоже, вы можете скачать и установить 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

эта идея была найдена здесь.

даже если вы можете редактировать файлы с помощью vi вероятно, это не решит вашу проблему, потому что файловая система эфемерна. Значение... Если вы редактируете файл через heroku run bash вы на самом деле не изменение файла на других динамометрических стендах. Изменить файл для всех динамометрических стендах необходимо либо изменить то, что вы пуша в репозиторий Git или изменить buildpack-пакет. Еще details:
https://devcenter.heroku.com/articles/oneoff-admin-ps#formation-dynos-vs-oneoff-dynos

отладка на Heroku

подготовить Дино

после установки naaman/heroku-vim вы можете создать новый эфемерный Дино через heroku vim. Как правильно указано в других сообщениях, вы не сможете увидеть свои изменения при просмотре через браузер, потому что изменения не будут распространяться, но... вы реально можете увидеть изменения внутри самого Дино.

я только экспериментировал с "просмотром" через curl, но если бы вы могли получить lynx там, или лучше тем не менее, получить ssh-туннель-может быть действительно здорово.

запустить сервер

веб-сервер не будет работать при создании экземпляра heroku-vim, поэтому вам нужно будет сделать это самостоятельно. В моем примере я запускаю 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. найти идентификатор процесса

    ~ $ 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 является родительским идентификатором - используйте это.

    kill 582
    
  2. подождите 1 секунда, а затем снова запустите сервер (вы получите новый идентификатор процесса!). Керлинг с помощью той же команды теперь даст вам обновленную страницу.

в комментариях к ссылке на ответ Брайана Такиты есть более свежее решение, чтобы получить Vim работа на консоли Heroku:

https://gist.github.com/dvdbng/7375821b20f189c189ab1bd29392c98e

просто сэкономил мне много времени! :)

срочная Альтернатива для редактирования файла в Heroku:

  1. скопируйте его на какой-нибудь удаленный хост. Мне нравится использовать Gist
  2. редактирование файла на Суть, а по окончании получить исходный URL-адрес к нему
  3. wget необработанный URL на вашем Heroku bash
  4. скопируйте извлеченный файл в путь к исходному файлу

альтернативный способ, если ваш сервер запускает php, - загрузить PHP File Manager, это один файл, и вы можете загрузить его из

http://phpfm.sourceforge.net/

теперь есть несколько пакетов сборки, которые включают vim:https://elements.heroku.com/search/buildpacks?q=vim

вы можете добавить один из них в рассматриваемое приложение Heroku, используя поддержка buildpack поддержка.