हेरोकू बैश शेल में कौन सा टेक्स्ट एडिटर उपलब्ध है? [बन्द है]


120

मैं अपने देवदार स्थित हरोकू ऐप में httpd.conf को अपडेट करने की कोशिश कर रहा हूं। मैं अपने Heroku मार के साथ मिला

 heroku run bash

और अपाचे के नीचे डिफरेंस पाया। लेकिन जब मैं किसी भी संपादक vi, vim, या emacs को खोलने की कोशिश करता हूं, तो मुझे इनमें से कोई भी प्रोग्राम नहीं मिल सकता है। आप हरोकू पर गोपनीय फाइलों को कैसे संपादित करते हैं?


Emacs SSH : p

जवाबों:


131

मैंने हाल ही में मूल gist को एक heroku cli plugin में बदल दिया

बस स्थापित करें:

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

और उपयोग करें:

heroku vim

heroku vimसाथ आदेश एक bash खोल में आप छोड़ देंगे vimअपने पर स्थापित $PATH। आपको बस अपनी उंगलियों को टाइप heroku vimकरने के लिए पीछे हटाना है heroku run bash


5
@ dwo में vim का उपयोग करना सिर्फ एक समस्या निवारण उपकरण है। चल रहे डायनो से कनेक्ट करना संभव नहीं है। इसके अलावा, यहां तक ​​कि अगर आप (आप एक हैक के साथ कर सकते हैं ), तो आप डायनो के अंदर जो बदलाव करते हैं, वह आपके स्लग के अंदर कायम नहीं रहेगा। जब आपके ऐप को फिर से शुरू किया जाएगा (हर 24 घंटे में) आपके द्वारा किए गए किसी भी परिवर्तन को खो दिया जाएगा।
नौमान न्यूबॉल्ड

4
@dwenaus एक और समस्या निवारण उपकरण जिसका आप उपयोग कर सकते हैं - और मैं QA / स्टेजिंग ऐप्स पर इसका उपयोग करने की अत्यधिक सलाह दूंगा, उत्पादन नहीं - है hbuild। यह आपको git commits के बिना अपना स्रोत कोड बदलने देता है, इसलिए आप अपने git के इतिहास को मचाये बिना Heroku पर सामान को आज़मा सकते हैं।
नौमान न्यूबॉल्ड

5
इतिहास को गड़बड़ाने से बचने का एक और तरीका है कि एक शाखा में काम करना और बाद में मास्टर में विलय करने से पहले सफाई करना। यदि आपकी शाखा का नाम है debug-heroku, तो इस तरह से तैनात करें git push heroku debug-heroku:master:।
जुबिन

8
सुनिश्चित नहीं है कि यह अब और काम कर रहा है - यार्न ने '' रेपिट को डाउनलोड करने से इंकार करते हुए .... एचटीटीपीएस पर एक प्रतिबद्ध हैश के बिना - संभावित प्रमाणपत्र त्रुटि?
टिम मालोन

3
यह उत्तर अब heroku-16स्टैक के साथ काम नहीं करता है , क्योंकि यह अब libxtरनटाइम पर उपलब्ध नहीं है । @funkenstrahlen
जोना एच।

64

यदि आप प्लगइन्स के साथ गड़बड़ नहीं करना चाहते हैं और बस अपने एक-बंद डायनो में नैनो की एक प्रति चाहते हैं, तो बस चलाएं

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

यह नैनो की एक प्रति डाउनलोड करेगा इस प्लगइन और इसे आपके पेट में डाल देगा।


3
उत्तम। अब मैं आवश्यकतानुसार विन्यास को संपादित कर सकता हूं
फेलिप

4
काम करने के लिए प्रतीत नहीं होता है - नैनो चलाना त्रुटि देता हैError opening terminal: unknown.
लेवी ब्लू

@looeee मेरे लिए अभी भी काम कर रहा है। क्या आप किसी भी मौके पर नए हरोकू -18 स्टैक पर हैं?
जेम्स

डॉक्यू के लिए भी काम करना। धन्यवाद @ जेम्स
जूडसैन

29

वहाँ edअगर आप एक masochist रहे हैं।


4
कैसे बाहर निकलें ed?
जराड

1
आदेश मोड में, q। यदि आप इन्सर्ट मोड में हैं ., तो अपने आप एक लाइन पर एक डॉट प्रिंट करें , फिर कमांड मोड में जाने के लिए एंटर करें। en.wikipedia.org/wiki/Ed_(text_editor)#Example
jcomeau_ictx

22

ऐसा लगता है कि आप एक सत्र के लिए विम डाउनलोड और इंस्टॉल कर सकते हैं:

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

यह विचार यहाँ पाया गया था ।


मुझे जिस चीज की जरूरत थी! एक कमांड का संपादन किया, उसे चलाया। अब रात में उसके बदलाव मेरे बदलावों को दूर कर सकते हैं, मैंने अपना काम पूरा कर लिया है!
मीका

1
अधिक जानकारी के लिए वहां देखें। gist.github.com/dvdbng/7375821b20f189c189ab1bd29392c98e
nilfalse

15

यहां तक ​​कि अगर आप इसके साथ फाइलों को संपादित कर सकते हैं, viतो संभवत: आपकी समस्या का समाधान नहीं होगा क्योंकि फाइल सिस्टम अल्पकालिक है। अर्थ ... यदि आप एक फाइल को संपादित करते हैं तो heroku run bashआप वास्तव में अन्य डायनो के लिए फाइल नहीं बदल रहे हैं। सभी dynos के लिए एक फ़ाइल को बदलने के लिए आपको या तो एक Git रेपो में पुश करने या बिल्डपैक को बदलने की आवश्यकता है। अधिक जानकारी:
https://devcenter.heroku.com/articles/oneoff-admin-ps#formation-dynos-vs-oneoff-dynos


21
मैं पर्यावरण को डीबग करना चाहूंगा heroku run bash, इसलिए vi / vim मेरे लिए बहुत उपयोगी होगा।
ब्रायन तकिता

3
अब आप वास्तविक dyno से जुड़ सकते हैं heroku ps:exec
निकोलस मॉर्ले

@ निचलोलॉर्ली आप कर सकते हैं, लेकिन आप किसी फ़ाइल में साइट / ऐप नोटिस परिवर्तन कैसे करेंगे?
x-yuri

@ x-yuri आप हरकोक पर इस तरह से काम नहीं कर सकते। आपको परिवर्तन करने के लिए ऐप को फिर से तैयार करना होगा।
जेम्स वार्ड

वास्तव में आप कर सकते हैं। आप एक dyno ले सकते हैं जो एक साइट चला रहा है, उसमें ssh ( heroku ps:exec), एक फ़ाइल बदलें, सर्वर का दूसरा उदाहरण शुरू करें, dyno के लिए एक पोर्ट को अग्रेषित करें ( heroku ps:forward 3000)। फिर, curl localhost:3000
x-yuri

13

नामान न्यूबॉल्ड द्वारा प्रदान किया गया प्लगइन अब heroku-16स्टैक के साथ काम नहीं कर रहा है, इसलिए मैंने इस अपडेट किए गए जीस्ट से एक नया प्लगइन बनाया

इंस्टॉल:

heroku plugins:install @jasonheecs/heroku-vim

और उपयोग करें:

heroku vim



6

हरोकू पर डिबगिंग

डायनो तैयार करें

स्थापित करने के बाद naaman/heroku-vimआप के माध्यम से एक नया पंचांग dyno बना सकते हैंheroku vim । जैसा कि अन्य पोस्टों द्वारा सही ढंग से बताया गया है कि आप ब्राउज़र के माध्यम से देखने पर अपने परिवर्तनों को नहीं देख पाएंगे क्योंकि परिवर्तनों का प्रचार नहीं किया जाएगा, लेकिन ... आप वास्तव में डायनो के अंदर से ही बदलाव देख सकते हैं।

मैंने केवल "ब्राउज़िंग" के साथ कर्ल के माध्यम से प्रयोग किया है, लेकिन अगर आप lynxवहां पर प्राप्त कर सकते हैं , या बेहतर अभी तक एक ssh सुरंग प्राप्त कर सकते हैं - वास्तव में बहुत अच्छा हो सकता है।

सर्वर शुरू करें

वेब सर्वर तब नहीं चलेगा जब आप हरको-विम को इंस्टेंट करेंगे तो आपको इसे स्वयं करने की आवश्यकता होगी। मेरे उदाहरण में मैं php चला रहा हूँ:

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

आप खुद इस कमांड को शुरू कर सकते हैं!

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

यह अब पृष्ठभूमि में चल रहा है!

अपनी वेबसाइट को कर्ल करें

रैनसम रैंडम पोर्ट्स पर शुरू होता है। सौभाग्य से आप जानते हैं कि यह कौन सा है क्योंकि यह $PORTचर है!

~ $ curl localhost:$PORT
Hello World!

संपादन

अब अपनी व्यर्थ बात करो, लेकिन जब आप फ़ाइल को सहेजते हैं और फिर से कर्ल करते हैं - तो आप बदलाव नहीं देखेंगे। मुझे समझ नहीं आता कि यह कहाँ कैश्ड है, लेकिन यह कैश्ड है। आपको सर्वर को मारना होगा और इसे पुनरारंभ करना होगा।

सर्वर को पुनरारंभ करना

  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 सेकंड प्रतीक्षा करें, और फिर सर्वर को फिर से शुरू करें (आपको एक नई प्रक्रिया आईडी मिलेगी!)। उसी कमांड के माध्यम से कर्लिंग अब आपको अद्यतन पृष्ठ देगा।


आप वास्तव में एक पोर्ट को फॉरवर्ड कर सकते हैं और इसके स्थान पर अपने ब्राउज़र का उपयोग कर सकते हैं curl
x-yuri

5

हरोकू में एक फ़ाइल को संपादित करने के लिए एक तत्काल विकल्प:

  1. इसकी एक प्रति को किसी दूरस्थ होस्ट पर रखें। मुझे जिस्ट का इस्तेमाल करना पसंद है
  2. फ़ाइल को Gist पर संपादित करें और समाप्त होने पर इसे कच्चा URL प्राप्त करें
  3. wget अपने हरोकू बैश पर कच्चे यूआरएल
  4. मूल फ़ाइल के पथ पर फ़ाइल को कॉपी करें

मुझे यह समाधान एक समय की आवश्यकता के लिए एकदम सही लगता है क्योंकि कोई भी प्लगइन आवश्यक नहीं है।
स्टीफन

2

मैंने हनोको डायनोस पर एक फाइल को संपादित करने के लिए नैनो या विम का उपयोग करके एक पूरा लेख लिखा था , लेकिन मूल रूप से:

  • आप कमांड लाइन का उपयोग कर सकते हैं:

    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

  • आप हरोकू प्लगइन्स का उपयोग कर सकते हैं: हरोकू-विम
  • आप हरोकू बिल्डपैक का उपयोग कर सकते हैं: हरोकू-बिल्डपैक-वीआईपी

आशा करता हूँ की ये काम करेगा!


प्लगइन मेरे लिए काम नहीं किया 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 filename.csv


0

वैकल्पिक तरीका अगर आपका सर्वर php PHP फ़ाइल प्रबंधक अपलोड करने के लिए है, यह एक फ़ाइल है और आप इसे डाउनलोड कर सकते हैं

http://phpfm.sourceforge.net/


0

एक फाइल को डायनो में बदल सकते हैं और हरकोक को धकेलने के बिना परिणाम देख सकते हैं:

  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 (दूसरा कंसोल):

    $ heroku ps:forward
    
  5. खुला हुआ localhost:4000अपने ब्राउज़र में ।

  6. रोकें start.sh, फ़ाइल बदलें, फिर से शुरू करें, ब्राउज़र पृष्ठ को ताज़ा करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.