Головна » Встановлення PHPStorm в Fedora 41

Встановлення PHPStorm в Fedora 41

PHPStorm інтегроване середовище розробки від JetBrains для для мови програмування PHP. Тут підтримуються всі можливості IDE від компанії JetBrains, плюс можна встановити багато плагінів, наприклад, для Laravel чи Symfony, які додають підсвітку синтаксису, автодоповнення, та пошук шляхів до файлів враховуючи особливості фреймфорку.

В цій статті ми розглянемо як встановити PHPStorm в Fedora 41 за допомогою Flatpak. А також, оскільки програма виконується в ізольованому середовищі, то і які налаштування щоб IDE мала доступ до всього необхідного.


Зміст

Як встановити PHPStorm в Fedora 41

Традиційним способом встановлення программ для робочого столу в Fedora є або RPM пакет з офіційних репозиторіїв, або пакет Flatpak. PHPStorm немає в офіційних репозиторіях, але є Flatpak пакет створений стороннім мейнтейнером.

На момент написання статті в репозиторії є версія 2024.3, але якщо ви хочете використовувати більш ранню вресію, то потрібну версію вибравши потрібний коміт в репозиторії Flathub, а також заборонити оновлення до більш нової якщо це потрібно.

1. Додати репозиторій Flathub

Якщо репозиторій Flathub ще не додано в систему, виконайте таку команду:

flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

2. Встановлення пакету

Для установлення найсвіжішої версії PHPStorm виконайте команду:

flatpak install com.jetbrains.PhpStorm

3. Вибір версії

Для того щоб отримати попередню версію вам всеодно зразу треба буде встановити найсвіжішу. Після встановлення, для того щоб дізнатись які версії доступні, необхідно переглянути історію комітів репозиторію FlatHub для цього пакету за допомогою наступної команди:

flatpak remote-info --log flathub com.jetbrains.PhpStorm

Зверніть увагу, що кожен комміт не обвязково відповідає іншій версії. При чому виводяться всі комміти які доступні, більш старі побачити не вийде, бо вони регулярно видаляются з репозиторію для економії місця.

Наприклад, якщо ви хочете встановити версію 2024.1, яка була випущена з коммітом 429f9b9c8f469cc9044dbdefab6d150e674a4eba7e21143ca5f70edd94a51d20 необхідно оновити пакет до цього комміту наступною командою:

flatpak update com.jetbrains.PhpStorm --commit=429f9b9c8f469cc9044dbdefab6d150e674a4eba7e21143ca5f70edd94a51d20

Після такого оновлення потрібно виконати наступну команду щоб програма не оновлювалась до новішої версії при оновлені всіх інших пакетів Flatpak:

flatpak mask com.jetbrains.PhpStorm

4. Перший запуск

Завантаження та встановлення займе деякий час і після цього ви зможете запустити програму з головного меню, або за допомогою команди:

flatpak run com.jetbrains.PhpStorm

Після запуску програми, в першому вікні можна вибрати Don't Send щоб не відправляти данні в JetBrains:

А в наступному потрібно або вказати ліцензію або активувати пробну версію на 30 днів:

Після цього програму треба трохи налаштувати, оскільки вона знаходиться в ізольованому середовищі і багато чого їй буде не доступно.

Налаштування PHPStorm в Flatpak

Для налаштування дозволів для програми вам знадобиться утилита Flatsel. Для її встановлення виконайте команду:

flatpak install com.github.tchx84.Flatseal

1. Проект JetBrains Flatpak Wrapper

Перш за все, потрібно відкрити тестовий проект, який пропонує відкрити PHPStorm після встановлення. Програма запитає відкрити його як проект чи залишитись в легкому редакторі. Виберіть проект:

А потім виберіть саму папку проекту яку запропонує програма. Папка знаходиться в файловій системі Flatpak пакета:

Після цього виберіть Trust Project щоб PHPStorm міг виконувати скріпти в проекті:

2. Помилка Embedded Browser is Suspended

Ця проблема може перешкоджати перегляду превю файлів, а також сторінка з швидкими посиланнями PHPStorm відкриватись не буде, тому варто її поправити. Вона виникає тому, що через обмеження PHPStorm не може запустити браузер в пісочниці. Детальніше про проблему можна прочитати тут.

Найпростіше рішення для Flatpak - вимкнути пісочницю для браузера оскільки створити профіль AppArrmor з Flatpak програми не вийде. Для цього фактично необхідно натиснути кнопку Enable Browser..., а потім Disable Sandbox.

Програма сама збереже необхідні налаштування і після цього її треба буде перезапустити. Фактично буде додана опція ide.browser.jcef.sandbox.enable в файл ~/.var/app/com.jetbrains.PhpStorm/config/JetBrains/PhpStorm2024.3/options/ide.general.xml зі значенням false:

<entry key="ide.browser.jcef.sandbox.enable" value="false" source="SYSTEM" />

3. Встановлення SDK

Тепер можна відкрити проект JetBrains Flatpak Wrapper який містить README файл про Flatpak версію програми. Тут є декілька корисних порад:

По перше, якщо вам буде потрібна підтримка додаткових мов програмування, то їх треба встановити за допомогою Flatpak, тому що системні виконувані файли програма бачити не буде. Наприклад для PHP8.4 та Node 22 треба виконати:

flatpak install flathub org.freedesktop.Sdk.Extension.php84 flatpak install flathub org.freedesktop.Sdk.Extension.node22

Далі їх необхідно активувати за допомогою змінної середовища, яку потрібно задати для контейнера програми:

flatpak override --user com.jetbrains.PhpStorm --env=FLATPAK_ENABLE_SDK_EXT="php84,node22"

Те ж саме можна зробити додавши відповідну змінну середовища для програми за допомогою Flatseal:

Після внесення змін PHPStorm треба перезапустити. Це дозволить не встановлювати ці мови в основній системі. За замовчуванням термінал PHPStorm тепер відкривається в контейнері. Ви можете переконатись що виконуваний файл PHP доступний в терміналі PHPStorm, але не доступний в системі.

4. Термінал хост системи в PHPStorm

Якщо ви хочете працювати з терміналом хост системи в PHPStorm, необхідно використовувати функцію flatpak-spawn для запуску процессу bash в хост системі. Але сам виконуваний файл flatpak-spawn має декілька проблем через які термінал хоч і буде працювати, але буде показувати помилки:

bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell

Тому краще використовувати утиліту host-spawn, яка використовує той же механізм, але виділяє TTY і корректно опрацьовує змінну середовища $TERM, але поки не поставляється в пакеті з PHPStorm. Але це не дуже велика проблема бо в PHPStorm є доступ до домашньої папки користувача і утиліту можна покласти там. Для завантаження виконайте:

wget https://github.com/1player/host-spawn/releases/download/v1.6.1/host-spawn-x86_64

Після цього перемістить файл, наприклад, в ~/.local/bin/:

mkdir ~/.local/bin/ mv host-spawn-x86_64 ~/.local/bin/host-spawn

Та зробіть його виконуваним:

chmod ugo+x ~/.local/bin/host-spawn

В PHPStorm відкрийте Settings -> Tools -> Terminal та пропишіть в Shell Path таку команду (звісно username треба замінити на логін вашого користувача):

/home/username/.local/bin/host-spawn bash

Після цього можете спробувати ще раз відкрити термінал в IDE і тепер помилок не буде, а також будуть підтримуватись кольори як в звичайному терміналі. Але це вже треба робити в звичайному проекті, який знаходиться в вашому домашньому каталозі.

5. Доступ до папок

Як я і писав раніше, PHPStorm в Flatpak має лише доступ до домашньої папки користувача. Якщо ви хочете дати доступ програмі до якоїсь іншої папки, поза домашньою, наприклад /mnt/share, то для цього треба скористатись наступною командою:

flatpak override --user com.jetbrains.PhpStorm --filesystem=/mnt/share

Це ж саме можна зробити за допомогою Flatseal, додавши потрібну папку в список Other files в розділі Filesystem:

Видалення PHPStorm

Для того щоб видалити PHPStorm встановлений за допомогою Flatpak виконайте:

flatpak remove com.jetbrains.PhpStorm

За замовчуванням команда видалить тільки пакет програми, а данні зашилаться. Для того щоб видалити ще й данні додайте опцію --delete-data:

flatpak remove --delete-data com.jetbrains.PhpStorm

Висновки

Як бачите, встановлення програми за допомогою Snap значно простіше, адже там немає ніякої ізоляції. Flatpak потребує значно більше налаштувань, але і дає більше контролю над програмою. Ми не розглянули встановлення з архіву завантаженого з офіційного сайту, або за допомогою JetBrains Toolbox, але ця інформація і так є на сайті програми.

Creative Commons License
Стаття поширюється під ліцензією Creative Commons ShareAlike 4.0 при використанні матеріалу посилання на джерело обовязкове.

Залишити коментар