Как создать сценарий для запуск приложения с использованием нескольких предварительных значений?

У меня есть веб-приложение, которое я бы хотел начать со сценария, а не открывать 3 вкладки и запускать процессы, затем менять строку на файл конфигурации, а затем запустите веб-сервер.

Во-первых, чтобы я мог протестировать веб-перехватчики, мне нужно запустить ngrok http https: // localhost: 3000 , который дает примерно такой же результат -

ngrok by @inconshreveable                                                                                                                                                               (Ctrl+C to quit)
                                                                                                                                                                                                        
Session Status                online                                                                                                                                                                    
Account                       myemail@gmail.com (Plan: Free)                                                                                                                                     
Version                       2.3.35                                                                                                                                                                    
Region                        United States (us)                                                                                                                                                        
Web Interface                 http://127.0.0.1:4040                                                                                                                                                     
Forwarding                    http://2f22e8990cbe.ngrok.io -> https://localhost:3000                                                                                                                    
Forwarding                    https://2f22e8990cbe.ngrok.io -> https://localhost:3000                                                                                                                   
                                                                                                                                                                                                        
Connections                   ttl     opn     rt1     rt5     p50     p90                                                                                                                               
                              13973   1       0.00    0.07    0.00    0.00   

Затем я изменяю файл конфигурации для размещения нового хоста (случайный для бесплатного использования ngrok )

# development.rb
config.hosts << '2f22e8990cbe.ngrok.io' # (tunnel address from above)

Затем я сохраняю файл и запускаю веб-сервер.

$ rails server puma --bind 'ssl://127.0.0.1:3000?key=/home/oaty/.ssh/localhost.key&cert=/home/oaty/.ssh/localhost.crt'

Я хотел бы записать это в одну команду. Я могу использовать более крупную переменную среды оболочки для хоста ngrok, хотя для начала мне нужно как-то получить ее из того же скрипта. Надеюсь, я не прошу слишком многого. Мне очень нравятся форумы Ubuntu. Думаю, я слишком аутист для большинства других мест. Да здравствует Ubuntu! менеджер по программированию и повседневному использованию. Я вообще-то не компьютер эксперт, но я начинаю изучать основы программирования ...

Я использую Ubuntu 20.04, и я подумывал попробовать окно менеджер по программированию и повседневному использованию. Я вообще-то не компьютер эксперт, но я начинаю изучать основы программирования языков (особенно Python) и некоторого программного обеспечения для анализа данных (например, R для статистики), поэтому мне нравится идея иметь мое рабочее пространство и окна оптимально организованы. Я думал лучший выбор для меня будет Qtile: будучи программированным на Python, я могу улучшить мои навыки программирования, в то же время настраивая WM. Однако, похоже, Qtile все еще отсутствует в репозитории фокуса, поэтому мне пришлось следовать рекомендациям веб-сайта (qtile.org), чтобы установить его с исходный код. Но в конце этого процесса я все еще не могу увидеть параметр Qtile в окне входа в систему, и когда я пытаюсь запустить файл setup.py, находящийся в моей домашней папке, я получаю множество таких ошибок:

mattia@HAL9000:~/qtile$ sudo python setup.py
Failed to find pulseaudio headers. PulseVolume widget will be unavailable
/usr/lib/python2.7/dist-packages/cffi/cparser.py:153: UserWarning: String literal found in cdef() or type source. String literals are ignored here, but you should remove them anyway because some character sequences confuse pre-parsing.
  warnings.warn("String literal found in cdef() or type source. "
/usr/lib/python2.7/dist-packages/cffi/cparser.py:164: UserWarning: Global variable 'CAIRO_TAG_DEST' in cdef(): for consistency with C it should have a storage class specifier (usually 'extern')
  "(usually 'extern')" % (decl.name,))
/usr/lib/python2.7/dist-packages/cffi/cparser.py:164: UserWarning: Global variable 'CAIRO_TAG_LINK' in cdef(): for consistency with C it should have a storage class specifier (usually 'extern')
  "(usually 'extern')" % (decl.name,))
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

error: no commands supplied

Я не понимаю ни слова и даже не уверен, или нет, я должен был запустить этот файл, но я думал, что мои проблемы могут быть связаны с тот факт, что моя версия Python по умолчанию по-прежнему 2.7. В Конечный результат - я не могу использовать Qtile. Как вы думаете, что могло быть причиной этого? И если это действительно связано в python2.7, как я могу обновить свою версию python без сбой половины моих приложений? (Я говорю это из прошлого опыта, но я не знаю, поменялось ли сейчас что-то и предполагаются ли приложения чтобы быть в порядке с другой версией Python). Я почти уверен, что мне не хватает чего-то очень простого ...

1
задан 20 August 2020 в 19:28

2 ответа

Обычно для вызова setup.py требуется аргумент install - sudo python setup.py install . Также вы можете прочитать официальную документацию Qtile .


Также вы можете загрузить Qtile 0.10.7 вручную из репозиториев 18.04 LTS, установить с помощью:

cd ~/Downloads
wget http://archive.ubuntu.com/ubuntu/pool/universe/q/qtile/python3-qtile_0.10.7-2ubuntu2_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/q/qtile/qtile_0.10.7-2ubuntu2_all.deb

sudo apt-get install ./qtile_0.10.7-2ubuntu2_all.deb ./python3-qtile_0.10.7-2ubuntu2_amd64.deb

и использовать в соответствии с планом.

0
ответ дан 21 August 2020 в 07:54

Я сам пытался запустить qtile в Linux Mint. Вот как мне удалось заставить его работать:

Я установил python и pip из текущих репозиториев (по умолчанию установлен python3, и вам также понадобится пакет python3-pip, который зависит от python3-setuptools и python3-wheel)

sudo apt install python3-setuptools python3-wheel python3-pip

Затем я следовал документации qtile, чтобы установить зависимости qtile, используя python3 вместо python и pip3 вместо pip. Я также запускал команды от имени пользователя root:

sudo pip3 install xcffib

sudo pip3 install --no-cache-dir cairocffi

sudo apt install libpangocairo-1.0-0 python-dbus python-gobject

Затем я установил qtile из pip, чтобы упростить обновление qtile:

pip3 install qtile

Затем с помощью этого поста ofefo на странице qtile в github (все еще немного нуб), я создал файл qtile.desktop в /usr/share/xsessions/ и добавил в этот файл следующие строки:

[Desktop Entry]
Name=Qtile
Comment=Qtile Session
Exec=python3 /usr/local/bin/qtile
Type=Application
Keywords=wm;tiling

Примечание. Ваш путь установки qtile может отличаться от /usr/local/bin/qtile. Чтобы найти путь установки, запустите what python3

Теперь все, что вам нужно сделать, это выйти из системы и выбрать qtile в окне выбора сеанса!

Надеюсь, это поможет :D

P.S. Я пока не могу комментировать, поэтому в ответ на проблему с журналом мой журнал ошибок qtile находился в ~/.xsession-errors.old

0
ответ дан 29 August 2020 в 10:51

Другие вопросы по тегам:

Похожие вопросы: