English Ukrainian
Tips and Tricks Підказки і настанови
Working with Toolbx Робота з Toolbx
Finding out if you are currently in a Toolbx container Визначення того, чи перебуваєте ви у контейнері Toolbx
If you frequently make use of Toolbx to perform various tasks and use multiple Toolbx containers it can be hard to keep track of whether you are currently executing commands on the host or in a Toolbx container. Furthermore, there is currently no command to tell you in which Toolbx container you are working. Якщо ви часто користуєтеся Toolbx для виконання різноманітних завдань і використовуєте декілька контейнерів Toolbx, стає важко стежити за тим, виконуєте ви команди в основній системі чи у контейнері Toolbx. Крім того, у поточній версії немає команди, яка б повідомила вам, у якому з контейнерів Toolbx ви працюєте.
To alleviate this, you can add the following shell alias at the end of your `~/.bashrc`: Для полегшення виконання цього завдання ви можете додати таку альтернативу командної оболонки наприкінці вашого файла `~/.bashrc`:
alias istoolbx='[ -f "/run/.toolboxenv" ] && grep -oP "(?<=name=\")[^\";]+" /run/.containerenv'
alias istoolbx='[ -f "/run/.toolboxenv" ] && grep -oP "(?<=name=\")[^\";]+" /run/.containerenv'
When you open a new shell, you now have access to the new command `istoolbx`. This will behave as follows: Коли ви відкриєте нову командну оболонку, у вас буде доступ до нової команди — `istoolbx`. Ця команда поводитиметься так:
When run from the host, returns an exit code of 1 Якщо команду виконано з основної системи, вона поверне код виходу 1
When run from a Toolbx container, returns an exit code of 0 and prints the current Toolbx containers name to the console Якщо команду запущено з контейнера Toolbx, буде повернуто код виходу 0 і виведено до консолі назву поточного контейнера Toolbx
If a more automated solution is your preference the following added to your `~/.bashrc` will change your bash prompt to include "[toolbox <name>]": Якщо вам подобається більш автоматизоване рішення, варто додати до вашого `~/.bashrc` вказаний вище фрагмент, який змінить ваш запит bash на такий, що міститиме рядок «[toolbox <назва>]»:
```
function is_toolbox() {
if [ -f "/run/.toolboxenv" ]
then
TOOLBOX_NAME=$(cat /run/.containerenv | grep -oP "(?<=name=\")[^\";]+")
echo "[${HOSTNAME} ${TOOLBOX_NAME}]"
fi
}
```
```
function is_toolbox() {
if [ -f "/run/.toolboxenv" ]
then
TOOLBOX_NAME=$(cat /run/.containerenv | grep -oP "(?<=name=\")[^\";]+")
echo "[${HOSTNAME} ${TOOLBOX_NAME}]"
fi
}
```
Now you can include `is_toolbox` in your `PS1` variable and not need to execute any extra commands in order to know whether or not your are in a toolbox or host shell. Потім ви можете включити `is_toolbox` до вашої змінної `PS1`, і вам вже не потрібно буде виконувати жодних додаткових команд для того, щоб дізнатися, перебуваєте ви у toolbox чи у командній оболонці основної системи.
Example: ``` export PS1="\[\e[31m\]\`is_toolbox\`\]\e[m\]\[\e[32m\]\\$ \[\e[m\]\[\e[37m\]❱\[\e[m\] " ``` Приклад: ``` export PS1="\[\e[31m\]\`is_toolbox\`\]\e[m\]\[\e[32m\]\\$ \[\e[m\]\[\e[37m\]❱\[\e[m\] " ```
This results in a prompt which appears as such when not in a toolbox: `$ ❱` Результатом буде запит, який виглядатиме так, якщо ви не у toolbox: `$ ❱`
However, when running in a toolbox named "default" looks like: `[toolbox default]$ ❱` А у toolbox із назвою «default» ось так: `[toolbox default]$ ❱`
Running applications from inside Toolbx on the host Запуск програм з Toolbx в основній системі
This can be necessary if you want to interact with tools available from the host, for example `podman`, `nmcli` or `rpm-ostree` without leaving the Toolbx container in between. You can use `flatpak-spawn`, included in the base installation for this: Потреба у запуску може виникнути, якщо ви хочете взаємодіяти із програмними інструментами основної системи, наприклад `podman`, `nmcli` або `rpm-ostree`, не полишаючи контейнера Toolbx. Ви можете скористатися для виконання цього завдання програмою `flatpak-spawn`, яку включено до базового пакунка:
$ flatpak-spawn --host podman --help
$ flatpak-spawn --host podman --help
If the application you want to call requires `sudo` access, the `-S` option must be supplied to `sudo` like below: Якщо програмі, яку ви хочете викликати, потрібен доступ `sudo`, слід додати параметр `-S` до команди `sudo`, ось так:
$ flatpak-spawn --host sudo -S rpm-ostree status
$ flatpak-spawn --host sudo -S rpm-ostree status