Opera’s Debian packages come from Opera’s own APT repository rather than Debian’s default archive, so the repository setup controls both the first install and future browser updates. The cleanest way to install Opera Browser on Debian Linux is to add Opera’s signed repository as a DEB822 source, confirm the package candidate, and then install the Opera channel you actually want.
The commands target Debian 13 (Trixie), Debian 12 (Bookworm), and Debian 11 (Bullseye). On amd64, Opera currently publishes stable, GX, beta, and developer packages. On arm64, current repository metadata publishes stable and developer packages, so check package availability before choosing GX or beta on ARM systems.
Install Opera Browser on Debian Linux
Refresh Debian’s package index and apply pending package upgrades before adding the Opera repository. Starting from a current package state avoids dependency surprises when APT resolves the browser package.
sudo apt update && sudo apt upgrade
These commands use
sudofor tasks that need root privileges. If your account is not configured for sudo yet, switch to root or review how to add a user to sudoers on Debian before continuing.
Use Opera’s Manual DEB822 Repository
For a new Debian install, use Opera’s APT repository with a DEB822 source file. This adapts Opera’s official repository instructions to Debian’s current source-file format, keeps the signing key in a dedicated keyring, and lets Opera update through normal APT upgrades.
Do not add direct Opera .deb downloads or existing extrepo configurations beside this source. They matter only when cleaning up older setups, because package-created .list files or extrepo source files can duplicate the same Opera repository and trigger apt update warnings.
Check Opera Package Availability by Architecture
Check your Debian architecture before choosing a package channel:
dpkg --print-architecture
amd64
Use the package table as the decision surface. The availability reflects Opera’s current repository metadata, not Debian’s default package archive.
| Package | Channel | amd64 | arm64 | Launch Command |
|---|---|---|---|---|
opera-stable | Stable release | Available | Available | opera |
opera-gx-stable | GX desktop build | Available | No current package in metadata | opera-gx |
opera-beta | Beta preview | Available | No current package in metadata | opera-beta |
opera-developer | Developer preview | Available | Available | opera-developer |
On arm64, confirm a candidate with
apt-cache policybefore installing a non-stable channel. Opera’s repository metadata can change, and APT package policy is the source that matters on your system.
Prepare Debian for Opera’s Manual Repository
Install the small tools needed to download the repository key and save it in APT’s keyring format. ca-certificates keeps HTTPS repository access reliable on minimal Debian installations.
sudo apt install curl gpg ca-certificates
The curl command fetches Opera’s key over HTTPS, while gpg --dearmor converts the ASCII-armored key into the binary keyring format used by the Signed-By field.
Import Opera’s APT Signing Key
Download Opera’s current repository signing key and save it under /usr/share/keyrings/:
curl -fsSL https://deb.opera.com/archive.key | sudo gpg --dearmor --yes -o /usr/share/keyrings/opera-browser.gpg
Verify the saved key before trusting it in the source file:
gpg --show-keys --with-fingerprint /usr/share/keyrings/opera-browser.gpg
The current Opera archive key is the 2025 key with this fingerprint:
pub rsa3072 2025-05-19 [SC] [expires: 2027-05-19]
6C86 BE21 4648 3766 80CA 957B 11EE 8C00 B693 A745
uid Opera Software Archive Automatic Signing Key 2025 <packager@opera.com>
Add Opera’s DEB822 Source File
Create a DEB822 source file that limits APT to the architecture reported by your Debian system. This avoids asking APT to fetch empty or unsupported architecture indexes.
arch=$(dpkg --print-architecture)
case "$arch" in
amd64|arm64)
printf '%s\n' \
'Types: deb' \
'URIs: https://deb.opera.com/opera-stable/' \
'Suites: stable' \
'Components: non-free' \
"Architectures: $arch" \
'Signed-By: /usr/share/keyrings/opera-browser.gpg' | sudo tee /etc/apt/sources.list.d/opera-browser.sources > /dev/null
;;
*)
printf 'Opera packages are not available for architecture: %s\n' "$arch"
false
;;
esac
The source uses Opera’s codename-neutral stable suite. Debian release codenames such as trixie, bookworm, and bullseye do not appear in this vendor repository file.
Refresh APT and Confirm Opera Packages
Refresh APT so Debian reads the new source:
sudo apt update
Confirm the package candidates and source URL before installing:
apt-cache policy opera-stable opera-gx-stable opera-beta opera-developer
On amd64, current output includes all four Opera channels from https://deb.opera.com/opera-stable:
opera-stable:
Candidate: 131.0.5877.55
500 https://deb.opera.com/opera-stable stable/non-free amd64 Packages
opera-gx-stable:
Candidate: 131.0.5877.57
500 https://deb.opera.com/opera-stable stable/non-free amd64 Packages
opera-beta:
Candidate: 126.0.5750.30
500 https://deb.opera.com/opera-stable stable/non-free amd64 Packages
opera-developer:
Candidate: 132.0.5903.0
500 https://deb.opera.com/opera-stable stable/non-free amd64 Packages
Opera version numbers change frequently. The important success signal is a non-
(none)candidate fromhttps://deb.opera.com/opera-stablefor the package you plan to install.
Install Opera Stable
Install the stable build for daily browsing:
sudo apt install opera-stable
If the installer asks whether Opera should add its own repository file, choose No. The DEB822 source already handles updates, and letting the package add a legacy .list file can create duplicate-source warnings.

Verify the installed stable browser command:
opera --version
Install Opera GX
Install Opera GX when you want the gaming-focused interface and GX-specific defaults. Confirm a candidate first on non-amd64 systems.
sudo apt install opera-gx-stable
Verify the GX command:
opera-gx --version
Install Opera Beta
Install the beta channel when you want near-future Opera features before they reach stable. Beta packages can change behavior sooner than stable releases, so use stable for normal daily browsing.
sudo apt install opera-beta
Verify the beta command:
opera-beta --version
Install Opera Developer
Install the developer channel only for testing early browser changes. It is the least conservative Opera package in the repository.
sudo apt install opera-developer
Verify the developer command:
opera-developer --version
Launch Opera Browser on Debian
Launch Opera from Terminal
Start the installed channel from a terminal with its launcher command:
opera
Use the matching command for other channels:
opera-gx
opera-beta
opera-developer
Launch Opera from the Applications Menu
Desktop installations also add menu entries. In GNOME, open Activities, search for Opera, and choose the channel you installed.


Configure Opera After First Launch
Use Opera’s first-run screen or Settings page to configure the features that made you choose Opera in the first place:
- Built-in VPN: Open Settings > Privacy and security > VPN, or use the VPN badge in the address bar after the feature is enabled.
- Ad blocker: Open Settings > Privacy and security and enable Opera’s ad blocking option for the current profile.
- Sidebar tools: Use the sidebar setup controls to add workspaces, messaging shortcuts, or media tools without installing separate desktop clients.
Update Opera Browser on Debian
Opera updates through APT after the repository is enabled. A normal package upgrade updates Opera alongside the rest of the system:
sudo apt update && sudo apt upgrade
To upgrade only one installed Opera package, refresh package metadata and use --only-upgrade with the package name:
sudo apt update
sudo apt install --only-upgrade opera-stable
Replace opera-stable with opera-gx-stable, opera-beta, or opera-developer when that is the installed channel.
Troubleshoot Opera Browser on Debian
Fix Duplicate Opera Repository Source Warnings
Duplicate-source warnings usually mean Opera’s package script, an older direct .deb install, an older article flow, or an existing extrepo setup left another Opera source beside your DEB822 file. APT can then warn that the same package target is configured more than once.
W: Target Packages (non-free/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list.d/opera-browser.sources:1 and /etc/apt/sources.list.d/opera-stable.list:4
List Opera-related source files first so you can see what exists:
ls /etc/apt/sources.list.d/*opera* 2>/dev/null
If you are keeping the manual DEB822 source, remove only the package-created legacy files:
sudo rm -f /etc/apt/sources.list.d/opera-*.list
sudo apt update
If the system already uses extrepo for Opera, keep extrepo_opera_stable.sources and remove only the extra opera-*.list files, or migrate fully to the manual DEB822 source before removing extrepo’s Opera files.
Fix Signed-By Conflicts Between Opera Sources
A hard Signed-By conflict means the same Opera source is configured with different key paths. Keep either the manual source or the existing extrepo source, then remove the other set of files.
E: Conflicting values set for option Signed-By regarding source https://deb.opera.com/opera-stable/ stable: /var/lib/extrepo/keys/opera_stable.asc != /usr/share/keyrings/opera-browser.gpg E: The list of sources could not be read.
To keep the manual DEB822 source and remove extrepo’s Opera files:
if command -v extrepo >/dev/null 2>&1; then
sudo extrepo disable opera_stable
fi
sudo rm -f /etc/apt/sources.list.d/extrepo_opera_stable.sources
sudo rm -f /var/lib/extrepo/keys/opera_stable.asc
sudo apt update
To keep extrepo and remove the manual source:
sudo rm -f /etc/apt/sources.list.d/opera-browser.sources
sudo rm -f /usr/share/keyrings/opera-browser.gpg
sudo apt update
For broader extrepo source management, review how to manage third-party APT repositories on Debian with extrepo.
Fix Opera Package Not Found
If apt-cache policy shows Candidate: (none), confirm the source file exists, the architecture matches your system, and APT can read Opera’s repository.
dpkg --print-architecture
cat /etc/apt/sources.list.d/opera-browser.sources
sudo apt update
apt-cache policy opera-stable
On arm64, opera-gx-stable and opera-beta may show no candidate even when opera-stable works, because those package names are not present in the current arm64 package index.
Fix Opera Key Import Failures
If gpg reports no valid OpenPGP data found, check whether the key URL returns the expected PGP block:
curl -fsSL https://deb.opera.com/archive.key | head -5
-----BEGIN PGP PUBLIC KEY BLOCK----- mQGNBGgrEnABDAC3S++y9OPF79pFJApWv5Ke0czoirWLN7a0rzScY2v+9LYWYVfU
If the command returns HTML, a proxy error, or no output, retry from a working network and make sure ca-certificates is installed. If the key URL is temporarily unavailable, wait rather than adding an unsigned source.
Remove Opera Browser from Debian
Uninstall Opera Packages
Remove the installed Opera package. Use the package name that matches your channel:
sudo apt remove --purge opera-stable
For other channels, remove the matching package:
sudo apt remove --purge opera-gx-stable
sudo apt remove --purge opera-beta
sudo apt remove --purge opera-developer
Then remove dependencies that APT no longer needs:
sudo apt autoremove
Remove Opera Repository Files
Remove the repository files only when no Opera channel should remain installed or updated on the system.
For the manual DEB822 method:
sudo rm -f /etc/apt/sources.list.d/opera-browser.sources
sudo rm -f /usr/share/keyrings/opera-browser.gpg
If the system previously used extrepo for Opera:
if command -v extrepo >/dev/null 2>&1; then
sudo extrepo disable opera_stable
fi
sudo rm -f /etc/apt/sources.list.d/extrepo_opera_stable.sources
sudo rm -f /var/lib/extrepo/keys/opera_stable.asc
Remove package-created legacy source files and Opera’s package-created trusted keys after all Opera sources are gone:
sudo rm -f /etc/apt/sources.list.d/opera-*.list
sudo rm -f /etc/apt/trusted.gpg.d/opera.archive.key.2023.gpg
sudo rm -f /etc/apt/trusted.gpg.d/opera.archive.key.2025.gpg
Refresh APT and confirm Opera no longer has a repository candidate:
sudo apt update
apt-cache policy opera-stable | grep -F 'deb.opera.com' || true
If the command prints no deb.opera.com line, the Opera repository is no longer contributing a package candidate.
Remove Opera User Data
The next command permanently deletes local Opera profiles, including bookmarks, history, saved passwords, extensions, and cache files. Back up profile directories first if you want to keep any browser data.
Create a timestamped backup of any Opera profile directories before deleting them:
backup_dir="$HOME/opera-profile-backups-$(date +%Y%m%d%H%M%S)"
for profile in opera opera-gx opera-beta opera-developer; do
if [ -d "$HOME/.config/$profile" ]; then
mkdir -p "$backup_dir"
cp -a "$HOME/.config/$profile" "$backup_dir/"
fi
done
Remove Opera profile and cache directories for all channels:
rm -rf ~/.config/opera ~/.config/opera-gx ~/.config/opera-beta ~/.config/opera-developer
rm -rf ~/.cache/opera ~/.cache/opera-gx ~/.cache/opera-beta ~/.cache/opera-developer
Related Debian Browser Guides
For Chromium-based alternatives, compare Google Chrome on Debian, Brave on Debian, Vivaldi on Debian, and Chromium on Debian. For a browser from Debian’s default archive, review Firefox on Debian.
Conclusion
Opera is installed from a signed APT repository with a verified package candidate, a clear channel choice, and a cleanup path for both repository files and browser profiles. Keep one Opera source path active, choose stable for normal browsing, and use GX, beta, or developer only when those channel trade-offs match the workstation.


An Excellent guide. Very clear and every instruction worked exactly as stated,
I installed Opera and then uninstalled it and removed repositories.
I just did not like opera – too much unnecessary bloat
I have added linuxcapable to my favourites
Mike
thank you was very helpful, especially the new DEB822 format
I had Opera 119 installed (I can’t remember how I did it), but, it wasn’t upgrading. Following your instructions I got Opera 123.
There was one little hitch. “apt update” complained about stuff configured multiple times. I was able to get rid of the complaints by renaming /etc/apt/sources.list.d/opera-stable.list (I assume that was created when I initially installed Opera 119 (your instructions create opera.list)), but, something recreated it as an empty file. How do I clean that up?
Thanks for reporting this, Christopher, and glad you’re on Opera 123 now. The duplicate entries warning happens because Opera’s installer creates its own
opera-stable.listfile alongside theopera.sourcesfile configured in the guide.Simply delete the duplicate file:
This is a one-time fix. The file is only created during initial installation and will not be recreated during future updates. After removing it, run
sudo apt updateand the warnings should be gone.