Підказки і настанови

Приховування типової програми для перегляду інтернету (Firefox)

Якщо ви користуєтеся іншою програмою для перегляду інтернету, ніж типова (Firefox), ви можете приховати типову програму з інтерфейсу за допомогою таких команд:

== Вмикання сховищ RPM Fusion

[CAUTION]
====
У цьому розділі наведено поради щодо сторонніх джерел програмного забезпечення, які офіційно не пов'язано із Проєктом Fedora і не схвалено його учасниками. Користуйтеся ними на свій розсуд. Fedora рекомендує користуватися вільним програмним забезпеченням із відкритим кодом і уникати програмного забезпечення, поширення якого обмежено патентами.
====

У користувачів може виникнути потреба у використанні програмного забезпечення, яке не є вільним і яке доступне зі сховищ https://rpmfusion.org/[RPM Fusion], для користування закритими драйверами NVIDIA, мультимедійними кодеками або іншим програмним забезпеченням, яке не поширюється як частина Fedora.

Під час початкового встановлення сховищ RPM Fusion вам слід встановити RPM відповідних версій:

    $ sudo rpm-ostree install \
        https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
        https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
    $ reboot


Щойно ви завантажите нову рознорнуту систему, ви зможете віддати вказану нижче команду для вилучення «блокування» пакунків версій, які було встановлено раніше. Це увімкне сховища RPM Fusion для автоматичного оновлення і належного використання версій для основних переходів за версіями Fedora:

    $ sudo rpm-ostree update \
        --uninstall rpmfusion-free-release \
        --uninstall rpmfusion-nonfree-release \
        --install rpmfusion-free-release \
        --install rpmfusion-nonfree-release
    $ reboot

Щоб дізнатися більше, ознайомтеся із https://discussion.fedoraproject.org/t/simplifying-updates-for-rpm-fusion-packages-and-other-packages-shipping-their-own-rpm-repos/30364[цією гілкою обговорення] на сайті Fedora Discourse.

== Робота з Toolbx

=== Визначення того, чи перебуваєте ви у контейнері Toolbx

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

Для полегшення виконання цього завдання ви можете додати таку альтернативу командної оболонки наприкінці вашого файла `~/.bashrc`:

  alias istoolbx='[ -f "/run/.toolboxenv" ] && grep -oP "(?<=name=\")[^\";]+" /run/.containerenv'

Коли ви відкриєте нову командну оболонку, у вас буде доступ до нової команди — `istoolbx`. Ця команда поводитиметься так:

* Якщо команду виконано з основної системи, вона поверне код виходу 1
* Якщо команду запущено з контейнера Toolbx, буде повернуто код виходу 0 і виведено до консолі назву поточного контейнера Toolbx

Якщо вам подобається більш автоматизоване рішення, варто додати до вашого `~/.bashrc` вказаний вище фрагмент, який змінить ваш запит bash на такий, що міститиме рядок «[toolbox <назва>]»:

function is_toolbox() { if [ -f "/run/.toolboxenv" ] then TOOLBOX_NAME=$(cat /run/.containerenv | grep -oP "(?⇐name=\")[^\";]+") echo "[${HOSTNAME} ${TOOLBOX_NAME}]" fi }

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

Приклад: ``` export PS1="\[\e[31m\]\`is_toolbox\`\]\e[m\]\[\e[32m\]\\$ \[\e[m\]\[\e[37m\]❱\[\e[m\] " ```

Результатом буде запит, який виглядатиме так, якщо ви не у toolbox: `$ ❱`

А у toolbox із назвою «default» ось так: `[toolbox default]$ ❱`

=== Запуск програм з Toolbx в основній системі

Потреба у запуску може виникнути, якщо ви хочете взаємодіяти із програмними інструментами основної системи, наприклад `podman`, `nmcli` або `rpm-ostree`, не полишаючи контейнера Toolbx. Ви можете скористатися для виконання цього завдання програмою `flatpak-spawn`, яку включено до базового пакунка:

  $ flatpak-spawn --host podman --help

Якщо програмі, яку ви хочете викликати, потрібен доступ `sudo`, слід додати параметр `-S` до команди `sudo`, ось так:

  $ flatpak-spawn --host sudo -S rpm-ostree status

Якщо ви використовуєте команди, подібні до наведеної вище, часто для доступу, наприклад, до команди flatpak з контейнера Toolbx, ви можете створити самі короткий нетиповий скрипт-обгортку (*у контейнері Toolbx*). Для цього виконайте такі кроки:

1. Визначте альтернативу `istoolbx` (для зручності) за допомогою згаданої вище команди у вашому терміналі

2. Переконайтеся, що ви перебуваєте у контейнері Toolbx. Якщо наступна команда нічого не виводить, ймовірно, ви усе ще перебуваєте в основній системі!

     [toolbx]$ istoolbx
     <Тут буде назва контейнера Toolbx>

3. Щойно ви опинитеся у контейнері Toolbx, віддайте таку команду:

    [toolbx]$ echo -e '#!/bin/sh\nexec /usr/bin/flatpak-spawn --host flatpak "$@"' | sudo tee /usr/local/bin/flatpak 1>/dev/null && sudo chmod +x /usr/local/bin/flatpak

Тепер вам доступна команда `flatpak`, за допомогою якої ви можете взаємодіяти з `flatpak` так, наче ви віддаєте команду в основній системі.

== Робота з `ostree`/`rpm-ostree`

=== Стеження за змінами у базовій операційній системі

Деякі з каталогів операційних систем на основі `ostree` придатні до запису для звичайного користувача, зокрема `/etc`. Ви можете переглянути список файлів, які було змінено у `/etc`, за допомогою такої команди:

  $ sudo ostree admin config-diff

Щоб отримати докладніший опис відмінностей, ви можете віддати таку команду:

  $ sudo diff -yrW200 --suppress-common-lines --color=always /usr/etc /etc 2>/dev/null

NOTE: Це працює, оскільки ostree зберігає незмінену копії каталогу `/etc` у
      `/usr/etc`. Усі внесені вами зміни записуються до `/etc` безпосередньо.

== Робота з програмами Flatpak

=== Безпосередній доступ до програм Flatpak з інтерфейсу командного рядка

Найпомітнішою відмінністю користування програмами Flatpak від користування звичайними програмами є те, що такі програми не можна безпосередньо викликати з інтерфейсу командного рядка, ось так:

  $ evince
  bash: команду не знайдено: evince

Замість цього, виклик можна здійснити так:

  $ flatpak run org.gnome.Evince

Крім того, більшість програм Flatpak експортують власні двійкові внутрішні файли каталозі, який залежить від каталогу встановлення:

* Для програм Flatpak, які встановлено з віддалених сховищ `system`, ці каталоги можна знайти у `/var/lib/flatpak/exports/bin/`
* Для програм Flatpak, які встановлено з віддалених сховищ `user`, ці каталоги можна знайти у `$HOME/.local/share/flatpak/exports/bin/`

[NOTE]
====
Якщо ви не певні, до якого встановлення належить програма Flatpak, ви можете скористатися такою командою для виведення потрібних даних:

  $ flatpak list --app --columns=name,installation
====

Ви можете або додати ці каталоги до змінної `$PATH`:

  $ org.gnome.Evince

або налаштувати `alias` командної оболонки так, щоб вони стали доступними інтерфейсу командного рядка, ось так:

  $ alias evince="flatpak run org.gnome.Evince"
    # або alias evince="org.gnome.Evince"
  $ evince