web-dev-qa-db-fra.com

Quel éditeur de texte est disponible dans Heroku bash shell?

J'essaie de mettre à jour httpd.conf dans mon application Heroku basée sur le cèdre. Je suis arrivé à ma soirée Heroku avec

 heroku run bash

et a trouvé le dir conf sous Apache. Mais lorsque j'essaie d'ouvrir n'importe quel éditeur vi, vim ou emacs, je ne trouve aucun de ces programmes. Comment éditez-vous les fichiers de configuration sur Heroku?

113
Dave Thomas

J'ai récemment transformé le Gist original en un plug-in heroku cli .

Il suffit d'installer:

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

Et utilise:

heroku vim

Le heroku vim La commande vous déposera dans un shell bash avec vim installé sur votre $PATH. Tout ce que vous avez à faire est de vous entraîner à taper heroku vim au lieu de heroku run bash.

128
Naaman Newbold

Si vous ne voulez pas jouer avec les plugins et que vous voulez juste une copie de nano dans votre dyno unique, lancez simplement

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

Cela téléchargera une copie de nano de this plugin et la mettra dans votre CHEMIN.

55
James

il y a ed si vous êtes masochiste.

28
jcomeau_ictx

Il semble que vous puissiez télécharger et installer vim pour une session:

#!/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

Cette idée a été trouvée ici .

22
Brian Takita

Même si vous pouviez éditer les fichiers avec vi, cela ne résoudrait probablement pas votre problème, car le système de fichiers est éphémère. Signification ... Si vous éditez un fichier via heroku run bash vous ne changez pas le fichier pour d’autres dynos. Pour changer un fichier pour tous les dynos, vous devez soit changer ce que vous insérez dans un dépôt Git, soit changer le buildpack. Plus de détails:
https://devcenter.heroku.com/articles/oneoff-admin-ps#formation-dynos-vs-oneoff-dynos

13
James Ward

Le plugin fourni par Naaman Newbold ne fonctionne plus avec heroku-16 pile, alors j'ai fait un nouveau plugin sur ce Gist mis à jour .

Installer:

heroku plugins:install @jasonheecs/heroku-vim

Et utilise:

heroku vim

9
Jason Hee

Dans les commentaires sur le lien de réponse de Brian Takita, il y a la solution la plus récente pour que Vim fonctionne sur la console Heroku:

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

Juste m'a sauvé beaucoup de temps! :)

7
Jared

Une alternative urgente pour éditer un fichier dans Heroku:

  1. placez-en une copie sur un hôte distant. J'aime utiliser Gist
  2. éditez le fichier sur Gist et quand vous avez fini, récupérez l'URL brute
  3. wget l'URL brute de votre compte Heroku
  4. copier le fichier récupéré dans le chemin du fichier d'origine
5
Vilson Vieira

Débogage sur Heroku

Préparer le dyno

Après avoir installé naaman/heroku-vim vous pouvez créer un nouveau dyno éphémère via heroku vim. Comme le signalent d'autres publications, vous ne pourrez pas voir vos modifications lorsque vous les visualiserez dans le navigateur, car les modifications ne seront pas propagées, mais ... vous pourrez voir les modifications de l'intérieur du dyno lui-même.

J'ai seulement essayé de "naviguer" via curl, mais si vous pouviez obtenir lynx là-bas, ou mieux encore, obtenir un tunnel SSH - cela pourrait être vraiment génial.

Démarrer le serveur

Le serveur Web ne fonctionnera pas lorsque vous instancerez heroku-vim, vous devrez donc le faire vous-même. Dans mon exemple, j'utilise php:

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

Vous pouvez lancer cette commande vous-même!

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

Il fonctionne maintenant en arrière-plan!

boucle ton site

Dynos démarre sur des ports aléatoires. Heureusement, vous savez lequel parce que c'est le $PORT variable!

~ $ curl localhost:$PORT
Hello World!

Édition

Faites votre vim chose maintenant, mais lorsque vous enregistrez le fichier et que vous le recourbez à nouveau, vous ne verrez pas les modifications. Je ne comprends pas où est mis en cache, mais c'est en cache. Vous devez tuer le serveur et le redémarrer.

Redémarrer le serveur

  1. Trouver l'identifiant du processus

    ~ $ 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

    Ici 582 est l'identifiant du parent - utilisez-le.

    kill 582
    
  2. Attendez une seconde, puis redémarrez le serveur (vous obtiendrez un nouvel identifiant de processus!). Curling via la même commande vous donnera maintenant la page mise à jour.

5
Mikhail

Si vous souhaitez simplement afficher le contenu du fichier, alors:

  1. allez dans le dossier où se trouve le fichier, par exemple. $ cd folder
  2. lancer la commande cat + le nom du fichier, par exemple $ cat filename.csv
2
Vadim Malakhovski

J'ai écrit un article complet sur Comment éditer un fichier sur Heroku Dynos en utilisant Nano ou Vim , mais en gros:

  • Vous pouvez utiliser la ligne de commande:

    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

  • Vous pouvez utiliser les plugins Heroku: heroku-vim
  • Vous pouvez utiliser Heroku Buildpacks: heroku-buildpack-vip

J'espère que ça aide!

1
Charles Bochet

Il existe maintenant un certain nombre de buildpacks incluant vim: https://elements.heroku.com/search/buildpacks?q=vim

Vous pouvez en ajouter un à l'application Heroku en question, en utilisant support buildpack .

1
wodow

l’autre façon si votre serveur php est d’envoyer PHP Gestionnaire de fichiers, fichier unique et vous pouvez le télécharger à partir de

http://phpfm.sourceforge.net/

0
ewwink