Próbuję zaktualizować httpd.conf w mojej aplikacji Heroku opartej na Cedar. Dostałem się na mój bash Heroku z
heroku run bash
i znalazłem conf dir pod apache. Ale kiedy próbuję otworzyć dowolny edytor vi, vim lub emacs, nie mogę znaleźć żadnego z tych programów. Jak edytować pliki conf w Heroku?
heroku
text-editor
Dave Thomas
źródło
źródło
Odpowiedzi:
Niedawno zamieniłem pierwotną treść we wtyczkę heroku cli .
Wystarczy zainstalować:
heroku plugins:install https://github.com/naaman/heroku-vim
I użyć:
heroku vim
heroku vim
Komenda spadnie ci do powłoki bash zvim
zainstalowanych na dysku$PATH
. Wszystko, co musisz zrobić, to ponownie wyszkolić palce, abyheroku vim
zamiast pisaćheroku run bash
.źródło
hbuild
. Pozwala zmienić kod źródłowy bez zatwierdzeń git, dzięki czemu możesz wypróbować różne rzeczy na Heroku bez bałagania w historii git.debug-heroku
, rozmieścić tak:git push heroku debug-heroku:master
.heroku-16
stosem, ponieważ nie jest jużlibxt
dostępny w czasie wykonywania . @funkenstrahlenJeśli nie chcesz bawić się wtyczkami i po prostu chcesz mieć kopię nano w swojej jednorazowej hamowni, po prostu biegnij
Spowoduje to pobranie kopii nano z tej wtyczki i umieszczenie jej w PATH.
źródło
Error opening terminal: unknown.
tam
ed
, jeśli jesteś masochistą.źródło
ed
?q
. jeśli jesteś w trybie wstawiania, wypisz kropkę.
w osobnym wierszu, a następnie Enter, aby przejść do trybu poleceń. en.wikipedia.org/wiki/Ed_(text_editor)#ExampleWygląda na to, że możesz pobrać i zainstalować vim na jedną sesję:
Ten pomysł został znaleziony tutaj .
źródło
Nawet gdybyś mógł edytować pliki za
vi
jego pomocą , prawdopodobnie nie rozwiązałoby to problemu, ponieważ system plików jest efemeryczny. Znaczenie ... Jeśli edytujesz plik za pośrednictwemheroku run bash
, w rzeczywistości nie zmieniasz pliku dla innych hamowni. Aby zmienić plik dla wszystkich hamowni, musisz albo zmienić to, co wypychasz w repozytorium Git, albo zmienić pakiet kompilacji. Więcej szczegółów:https://devcenter.heroku.com/articles/oneoff-admin-ps#formation-dynos-vs-oneoff-dynos
źródło
heroku run bash
, więc vi / vim byłby dla mnie bardzo przydatny.heroku ps:exec
.heroku ps:exec
), zmienić plik, uruchomić drugą instancję serwera, przekierować port do dyno (heroku ps:forward 3000
). Następniecurl localhost:3000
.Wtyczka dostarczona przez Naamana Newbolda nie działa już ze
heroku-16
stosem, więc stworzyłem nową wtyczkę na podstawie zaktualizowanej treści .Zainstalować:
heroku plugins:install @jasonheecs/heroku-vim
I użyć:
heroku vim
źródło
W komentarzach do linku odpowiedzi Briana Takity znajduje się nowsze rozwiązanie umożliwiające Vimowi pracę na konsoli Heroku:
https://gist.github.com/dvdbng/7375821b20f189c189ab1bd29392c98e
Właśnie zaoszczędziłem dużo czasu! :)
źródło
Debugowanie w Heroku
Przygotuj hamownię
Po zainstalowaniu
naaman/heroku-vim
możesz stworzyć nową efemeryczną hamownię przezheroku vim
. Jak słusznie wskazano w innych postach, nie będziesz w stanie zobaczyć swoich zmian podczas przeglądania przez przeglądarkę, ponieważ zmiany nie będą propagowane, ale ... faktycznie możesz zobaczyć zmiany z wnętrza samej hamowni.Eksperymentowałem tylko z "przeglądaniem" przez curl, ale gdybyś mógł się
lynx
tam dostać , albo jeszcze lepiej zdobyć tunel ssh - mogłoby być naprawdę świetne.Uruchom serwer
Serwer sieciowy nie będzie działał po utworzeniu instancji heroku-vim, więc musisz to zrobić samodzielnie. W moim przykładzie używam php:
Możesz sam uruchomić to polecenie!
Teraz działa w tle!
zwiń swoją witrynę
Hamownie uruchamiają się na losowych portach. Na szczęście wiesz, który z nich, ponieważ jest to
$PORT
zmienna!Redagowanie
Zrób teraz swoje vim, ale kiedy zapiszesz plik i ponownie zwijasz - nie zobaczysz zmian. Nie rozumiem, gdzie jest zapisany w pamięci podręcznej, ale jest w pamięci podręcznej. Musisz zabić serwer i zrestartować go.
Restartowanie serwera
Znajdź identyfikator procesu
Oto
582
identyfikator rodzica - użyj go.Poczekaj 1 sekundę, a następnie ponownie uruchom serwer (otrzymasz nowy identyfikator procesu!). Curling za pomocą tego samego polecenia spowoduje wyświetlenie zaktualizowanej strony.
źródło
curl
.Pilna alternatywa edycji pliku w Heroku:
wget
nieprzetworzony adres URL w twoim Heroku bashźródło
Napisałem cały artykuł o tym, jak edytować plik w Heroku Dynos przy użyciu Nano lub Vim , ale w zasadzie:
Możesz użyć wiersza poleceń:
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
Mam nadzieję, że to pomoże!
źródło
vim: error while loading shared libraries: libXt.so.6: cannot open shared object file: No such file or directory
. Ale pakiet kompilacji zadziałał.Jeśli chcesz tylko przejrzeć zawartość pliku, to:
$ cd folder
$ cat filename.csv
źródło
Istnieje teraz wiele pakietów kompilacji, które obejmują vim: https://elements.heroku.com/search/buildpacks?q=vim
Możesz dodać jeden z nich do danej aplikacji Heroku, korzystając z obsługi pakietu pomocniczego .
źródło
alternatywnym sposobem, jeśli twój serwer uruchamia php, jest przesłanie menedżera plików PHP, to pojedynczy plik i możesz go pobrać
http://phpfm.sourceforge.net/
źródło
Można zmienić pliki na hamowni i zobaczyć wynik bez naciskania na Heroku:
Zainstaluj
heroku-buildpack-vim
pakiet kompilacji:Ssh do hamowni:
Utwórz i uruchom start.sh:
Port forward 4000 (druga konsola):
Otwórz
localhost:4000
w przeglądarce.start.sh
, zmień plik, zacznij od nowa, odśwież stronę przeglądarki.źródło
Wolę edytor Nano, możesz użyć następującego buildpack ... https://github.com/velizarn/heroku-buildpack-nano
źródło