Correct layout issues discovered post-libretro#973

The enhancements to the Content Security Policy and sandboxing
introduced in commit a746567c ultimately prevented the embedded
YouTube video from launching. This commit makes the allow lists
more explicit about safe domains and adds 'allow-same-origin'
and 'allow-scripts' to the sandbox permissions. Also the nested
sublist blocks needed to be indented by multiples of 4 spaces
and not aligned with the first line as needed by other popular
Markdown parsers.

Signed-off-by: Peter J. Mello <admin@petermello.net>
This commit is contained in:
Peter J. Mello 2024-08-21 00:44:31 +01:00
parent b91e882cfe
commit 71f289afe9
No known key found for this signature in database
GPG Key ID: A6795034E962FCAB

View File

@ -1,41 +1,48 @@
# Downloading, Installing and Updating RetroArch ---
title: Downloading, Installing and Updating RetroArch on GNU/Linux
description: Instructions for setting up RetroArch on GNU/Linux systems.
icon: fontawesome/brands/linux
status: stable
---
<iframe allow="accelerometer; ambient-light-sensor; autoplay; clipboard-write; # Installing RetroArch on Linux
display-capture; encrypted-media; execution-while-out-of-viewport; fullscreen;
geolocation; gyroscope; hid; magnetometer; picture-in-picture;
screen-wake-lock; speaker-selection; web-share;" aria-label="YouTube video"
height="315" loading="lazy" name="YouTube embedded player"
referrerpolicy="strict-origin-when-cross-origin" role="application"
sandbox="allow-orientation-lock; allow-presentation;"
src="https://www.youtube-nocookie.com/embed/kCyTlMjvzWA"
style="border-collapse: collapse; border-style: hidden; margin: 1rem auto;"
title="RetroArch - How to Install : Sega Genesis Mini" width="560"></iframe>
## GNU/Linux This page contains descriptions of several officially-supported methods of
installing RetroArch on systems running the GNU/Linux kernel.
### Flatpak <iframe allow="accelerometer 'self'; clipboard-write *; display-capture 'self'; encrypted-media 'src';
fullscreen *; geolocation 'src'; gyroscope 'self'; hid 'self'; picture-in-picture *; screen-wake-lock *;
web-share *;" aria-label="YouTube video" height="315" width="560" loading="lazy" role="application"
name="YouTube embedded player" title="RetroArch - How to Install: Linux" referrerpolicy="strict-origin-when-cross-origin"
sandbox="allow-orientation-lock allow-popups allow-presentation allow-same-origin allow-scripts"
src="https://www.youtube-nocookie.com/embed/7ZSPR2eYULU?origin=docs.libretro.com&playsinline=1"
style="border-collapse: collapse; border-style: hidden; display: block; margin: 1.5rem auto 2rem; position: relative;"></iframe>
---
## Flatpak (suitable for most Linux distributions)
Flatpak is a distribution-agnostic packaging format with broad support Flatpak is a distribution-agnostic packaging format with broad support
throughout the Linux ecosystem. An official throughout the Linux ecosystem. An official [RetroArch
[RetroArch flatpak][retroarch-flatpak] is published in the Flathub repository, flatpak][retroarch-flatpak] is published in the Flathub repository, and can be
and can be installed in just three easy steps: installed in just three easy steps:
#### Installation ### Installation
1. Ensure that Flatpak is [enabled on your system][flatpak-setup] by opening the 1. Ensure that Flatpak is [enabled on your system][flatpak-setup] by opening the
terminal and confirming that the following command exits with no errors: terminal and confirming that the following command exits with no errors:
```sh ``` shell
flatpak --installations flatpak --installations
``` ```
1. Confirm that the Flathub repository is configured as a 1. Confirm that the Flathub repository is configured as a [flatpak
[flatpak remote][flatpak-remote], so that packages may be installed from it. remote][flatpak-remote], so that packages from it may be installed. You can
You can examine the flatpak remotes currently enabled on your system with examine the flatpak remotes currently enabled on your system with this
this terminal command (shown with default output): terminal command (shown with default output):
```console ``` shell-session hl_lines="4"
$ flatpak remotes --columns=name,url,homepage ra@libretro:~$ flatpak remotes --columns=name,url,homepage
Name URL Homepage Name URL Homepage
flathub https://dl.flathub.org/repo/ https://flathub.org/ flathub https://dl.flathub.org/repo/ https://flathub.org/
@ -44,93 +51,126 @@ and can be installed in just three easy steps:
If Flathub is not among the remotes shown, this command will add it to your If Flathub is not among the remotes shown, this command will add it to your
system: system:
```sh ``` shell
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
``` ```
1. Finally, install the RetroArch Flatpak. You have the option of making it 1. Finally, install the RetroArch Flatpak. You have the option of making it
available to only the current user, with this command: available to only the current user, with this command:
```sh ``` shell
flatpak install -y --user --from https://dl.flathub.org/repo/appstream/org.libretro.RetroArch.flatpakref flatpak install -y --user --from https://dl.flathub.org/repo/appstream/org.libretro.RetroArch.flatpakref
``` ```
Or for all users with this command: Or for all users with this command:
```sh ``` shell
sudo flatpak install -y --from https://dl.flathub.org/repo/appstream/org.libretro.RetroArch.flatpakref sudo flatpak install -y --from https://dl.flathub.org/repo/appstream/org.libretro.RetroArch.flatpakref
``` ```
#### Launching the Flatpak ### Launching the Flatpak
RetroArch should now be listed in your app launcher and can also be executed RetroArch should now be listed in your app launcher and can also be executed
from the terminal with the command: from the terminal with the command:
```sh ``` shell
flatpak run org.libretro.RetroArch flatpak run org.libretro.RetroArch
``` ```
#### Updates ### Updates
You should keep RetroArch updated by running this command periodically from the You should keep RetroArch updated by running this command periodically from the
terminal: terminal:
```sh ``` shell
flatpak update -y --app org.libretro.RetroArch flatpak update -y --app org.libretro.RetroArch
``` ```
### Ubuntu-based ## Ubuntu(-based)
If you're using Ubuntu, an official [Ubuntu flavor][ubuntu-flavors], or one of Ubuntu provides RetroArch as a Debian [package in their official "universe"
the many Linux distributions based on Ubuntu (such as Linux Mint, Zorin OS, Pop! archive][ubuntu-package], which is maintained by the community with no promise
OS, elementary OS, etc.), you can install RetroArch and many of the most popular of support or regular update schedule. Nevertheless, for the casual user of
Libretro cores as native APT packages by simply enabling one (or both) of the Ubuntu or a derivative distribution, it represents the simplest method for
two official Libretro [Personal Package Archives (PPAs)][help-ppas] hosted on installing RetroArch. All that is required is to open a terminal and issue this
[Launchpad](https://launchpad.net/~libretro), namely: single command:
- [**Stable**][ppa-stable] (recommended), which includes only official releases ``` shell
(as announced on libretro.com / retroarch.com), and sudo apt --upgrade --yes install retroarch
- [**Testing**][ppa-testing], which provides nightly builds of RetroArch and
most Libretro cores that allow you to test new features as soon as they're
added.
#### Installation
In order to add PPAs to your system's package sources, some tools from the
official package repositories are needed. Open the terminal and run this command
to ensure they are installed:
```sh
sudo apt -y install software-properties-common
``` ```
One command is needed to add a PPA to your system's package sources. To add the ### Personal Package Archives (PPAs)
[**Stable PPA**][ppa-stable], use:
```sh In an effort to improve the experience of RetroArch users on Ubuntu, official
sudo add-apt-repository -ysnP libretro/stable [Ubuntu flavors][ubuntu-flavors], and all of the many Linux distributions based
on Ubuntu (such as Linux Mint, Zorin OS, Pop! OS, elementary OS, etc.), the
Libretro Team has long been committed to producing its own Debian packages as an
alternative to the ones supplied by Ubuntu in the "universe" package archive.
These packages are updated much faster to keep pace with each new RetroArch
version, and compiled with a greater range of features than the Ubuntu package.
In addition, Debian packages are created for the vast majority of popular
Libretro cores, simplifying their installation and allowing them to be updated
by the system package manager on the same schedule as all other package updates.
These packages are built and distributed using the [Launchpad
platform][launchpad-team] operated by Canonical itself (the company which
distributes Ubuntu), and split into two channels called "Personal Package
Archives" (PPAs) that each cater to a specific type of user. By simply [enabling
one (or both) the PPAs][help-ppas] listed below, users can seamlessly replace
the Ubuntu RetroArch package on their system with those provided by the Libretro
team.
- [**Stable**][ppa-stable] (recommended) — includes only official releases
(as announced on libretro.com / retroarch.com)
- [**Testing**][ppa-testing] — builds of RetroArch and most Libretro cores from
the latest source code, for test new fixes and features as soon as they're
added
### Installation
Follow these steps to enable the Libretro PPAs on your Ubuntu(-based) system.
1. In order to add PPAs to your system's package sources, some tools from the
official package repositories are needed. Open the terminal and run this
command to ensure they are installed:
``` shell
sudo apt --update --yes install software-properties-common
``` ```
Or to add the [**Testing PPA**][ppa-testing], use: 1. Just a single command is needed to add a PPA to your system's package
sources.
```sh - To add the [**Stable PPA**][ppa-stable], run this command in your
sudo add-apt-repository -ysnP libretro/testing terminal:
``` shell
sudo add-apt-repository --yes --no-update --ppa libretro/stable
``` ```
You can now install the RetroArch package from the PPAs with this command: - Or to add the [**Testing PPA**][ppa-testing], run:
```sh ``` shell
sudo apt -Uy install retroarch sudo add-apt-repository --yes --no-update --ppa libretro/testing
``` ```
You can verify that the PPA package was installed rather than the one from the 1. You can now install the RetroArch package from the PPAs with this command:
official distribution repositories with the `apt show` command (shown with
expected output for the Testing PPA package):
```console ``` shell
$ apt show retroarch sudo apt --update --yes install retroarch
```
#### Verifying PPA package installation
You can verify that the PPA package is installed (rather than the one from the
official distribution repositories) with the `apt show retroarch` command (shown
with expected output for the Testing PPA package):
``` shell-session hl_lines="14"
ra@libretro:~$ apt show retroarch
Package: retroarch Package: retroarch
Version: 1.19.1+r202408170734~bf25bd9149-179~ubuntu24.04.1 Version: {{ unit.stable }}+r202408170734~bf25bd9149-179~ubuntu24.04.1
Priority: optional Priority: optional
Section: games Section: games
Maintainer: Libretro Team <libretro@gmail.com> Maintainer: Libretro Team <libretro@gmail.com>
@ -154,51 +194,91 @@ Description: Simple frontend for the libretro library
Notice: There is 1 additional record. Please use the '-a' switch to see it Notice: There is 1 additional record. Please use the '-a' switch to see it
``` ```
Look at the **`APT-Sources:`** line in the output. If one of the PPA packages is !!! tip "What to look for"
installed, its value will begin with Look at the **`APT-Sources:`** line in the output. If one of the PPA
packages is installed, its value will begin with
`https://ppa.launchpadcontent.net/libretro/`. `https://ppa.launchpadcontent.net/libretro/`.
#### Updates ### Updates
With this installation method, RetroArch updates will automatically be included With this installation method, RetroArch updates will automatically be included
with your systems regular package upgrades. However, you are always able to with your system's regular package upgrades. However, you are always able to
trigger an update specifically for RetroArch with the terminal command: trigger an update specifically for RetroArch (if one is available) with the
command:
```sh ``` shell
sudo apt -y upgrade retroarch sudo apt --update --yes upgrade retroarch
``` ```
### Arch Linux-based ## Arch Linux(-based)
Arch Linux provides a [`retroarch`][arch-package] package for x86_64 systems in ### Installation
their official [Extra repository][arch-extra-repo]. You can install it by
#### Official package
Arch Linux provides a [**`retroarch`**][arch-package] package for x86_64 systems
in their official [Extra repository][arch-extra-repo]. You can install it by
searching for RetroArch by name in a graphical package manager like searching for RetroArch by name in a graphical package manager like
[Octopi][octopi], or from the terminal with the command: [Octopi][octopi], or from the terminal with the command:
```sh ``` shell
sudo pacman -S retroarch sudo pacman -S retroarch
``` ```
A "git" package named [`retroarch-git`][aur-git-package] which offers prerelease #### Arch User Repository (AUR) package
builds (similar to the Testing PPA described above) is also available on the
[AUR][arch-aur]. As above, it can be installed from a package manager GUI or in
the terminal using an "[AUR helper][aur-helpers]" like [`yay`][aur-yay], as in:
```sh A "git" package named [**`retroarch-git`**][aur-git-package] which offers
prerelease builds (similar to the Testing PPA described above) is also available
in the [AUR][arch-aur]. As above, it can be installed from a package manager GUI
or in the terminal using an "[AUR helper][aur-helpers]" like [`yay`][aur-yay],
as in:
``` shell
yay retroarch-git yay retroarch-git
``` ```
!!! tip "Installing an AUR helper"
If you wish to install the AUR package but don't yet have an AUR helper
installed on your system, the following shell "one-liner" will download,
compile and install `yay` for you:
``` shell
pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay-bin.git &&
cd yay-bin && makepkg -si
```
### Updates
With this installation method, RetroArch updates will automatically be included
with your system's regular package upgrades. However, you are always able to
trigger an update specifically for RetroArch (if one is available) with the
following commands.
#### Official package
``` shell
pacman -Syyuu retroarch
```
#### AUR package
``` shell
yay -Syyuu retroarch-git
```
[arch-aur]: https://aur.archlinux.org/ "Arch User Repository (AUR)" [arch-aur]: https://aur.archlinux.org/ "Arch User Repository (AUR)"
[arch-extra-repo]: https://wiki.archlinux.org/title/Official_repositories#extra [arch-extra-repo]: https://wiki.archlinux.org/title/Official_repositories#extra "Official repositories - ArchWiki"
[arch-package]: https://archlinux.org/packages/extra/x86_64/retroarch/ [arch-package]: https://archlinux.org/packages/extra/x86_64/retroarch/ "Arch Linux - retroarch {{ unit.stable }}-1 (x86_64)"
[aur-git-package]: https://aur.archlinux.org/packages/retroarch-git [aur-git-package]: https://aur.archlinux.org/packages/retroarch-git "AUR (en) - retroarch-git"
[aur-helpers]: https://wiki.archlinux.org/title/AUR_helpers [aur-helpers]: https://wiki.archlinux.org/title/AUR_helpers "AUR helpers - ArchWiki"
[aur-yay]: https://github.com/Jguer/yay [aur-yay]: https://github.com/Jguer/yay "Jguer/yay: Yet another Yogurt - An AUR Helper written in Go (GitHub)"
[flatpak-remote]: https://docs.flatpak.org/en/latest/flatpak-command-reference.html#flatpak-remotes [flatpak-remote]: https://docs.flatpak.org/en/latest/flatpak-command-reference.html#flatpak-remotes "Flatpak Command Reference - Flatpak documentation"
[flatpak-setup]: https://flatpak.org/setup/ [flatpak-setup]: https://flatpak.org/setup/ "Flatpak—the future of application distribution"
[help-ppas]: https://help.launchpad.net/Packaging/PPA/InstallingSoftware [help-ppas]: https://help.launchpad.net/Packaging/PPA/InstallingSoftware "Packaging/PPA/Installing Software - Launchpad Help"
[octopi]: https://tintaescura.com/projects/octopi/ [launchpad-team]: https://launchpad.net/~libretro "Libretro in Launchpad"
[ppa-stable]: https://launchpad.net/~libretro/+archive/ubuntu/stable [octopi]: https://tintaescura.com/projects/octopi/ "Octopi - Tinta escura"
[ppa-testing]: https://launchpad.net/~libretro/+archive/ubuntu/testing [ppa-stable]: https://launchpad.net/~libretro/+archive/ubuntu/stable "Libretro Stable : “Libretro” team"
[retroarch-flatpak]: https://flathub.org/apps/org.libretro.RetroArch [ppa-testing]: https://launchpad.net/~libretro/+archive/ubuntu/testing "Libretro Testing/Nightly : “Libretro” team"
[ubuntu-flavors]: https://ubuntu.com/desktop/flavours [retroarch-flatpak]: https://flathub.org/apps/org.libretro.RetroArch "Install RetroArch on Linux &verbar; Flathub"
[ubuntu-flavors]: https://ubuntu.com/desktop/flavours "Ubuntu flavours &verbar; Ubuntu"
[ubuntu-package]: https://packages.ubuntu.com/search?keywords=retroarch&searchon=names "Ubuntu Package Search Results -- retroarch"