mirror of
https://github.com/tiyn/wiki.git
synced 2026-01-11 17:19:46 +01:00
Compare commits
3 Commits
179a9d2426
...
ee660899d1
| Author | SHA1 | Date | |
|---|---|---|---|
| ee660899d1 | |||
| ca7b3971f5 | |||
| d3c7daca15 |
@@ -26,10 +26,10 @@ betterdiscordctl self-upgrade
|
|||||||
### Pacman Hook
|
### Pacman Hook
|
||||||
|
|
||||||
When using [Arch Linux](/wiki/linux/arch-linux.md) and its package managers
|
When using [Arch Linux](/wiki/linux/arch-linux.md) and its package managers
|
||||||
[Pacman and Yay](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay) a hook can be set that
|
[Pacman and Yay](/wiki/linux/package_manager/pacman_and_aur.md) a hook can be set that
|
||||||
automatically updates the discord installation to setup betterdiscord using betterdiscordctl.
|
automatically updates the discord installation to setup betterdiscord using betterdiscordctl.
|
||||||
The following is a [pacman hook](/wiki/linux/package_manager.md#hooks) that can be used to update
|
The following is a [pacman hook](/wiki/linux/package_manager/pacman_and_aur.md#hooks) that can be
|
||||||
betterdiscord automatically.
|
used to update betterdiscord automatically.
|
||||||
Make sure to change the three occurences of `<username>` to the name of the user to install
|
Make sure to change the three occurences of `<username>` to the name of the user to install
|
||||||
betterdiscord for.
|
betterdiscord for.
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,8 @@ The Steam software suite is available on [Linux](/wiki/linux.md) and [Windows](/
|
|||||||
systems.
|
systems.
|
||||||
For Linux-based operating systems there often exists a package named `steam`.
|
For Linux-based operating systems there often exists a package named `steam`.
|
||||||
For [Arch Linux](/wiki/linux/arch-linux.md) the
|
For [Arch Linux](/wiki/linux/arch-linux.md) the
|
||||||
[multilib repository](/wiki/linux/package_manager.md#enabling-multilib) needs to be enabled.
|
[multilib repository](/wiki/linux/package_manager/pacman_and_aur.md#enabling-multilib) needs to be
|
||||||
|
enabled.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ It places files or directories in an archive and is able to compress them.
|
|||||||
|
|
||||||
7-zip can be installed by installing the packages `p7zip-full` and `p7zip-rar` on Ubuntu systems.
|
7-zip can be installed by installing the packages `p7zip-full` and `p7zip-rar` on Ubuntu systems.
|
||||||
On [Arch Linux](/wiki/linux/arch-linux.md) it can be installed with the package `7-zip`
|
On [Arch Linux](/wiki/linux/arch-linux.md) it can be installed with the package `7-zip`
|
||||||
from the [AUR](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay).
|
from the [AUR](/wiki/linux/package_manager/pacman_and_aur.md).
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
|||||||
@@ -3,17 +3,19 @@
|
|||||||
[Arch Linux](https://archlinux.org/) is a rolling-release, general-purpose
|
[Arch Linux](https://archlinux.org/) is a rolling-release, general-purpose
|
||||||
[Linux](/wiki/linux.md)
|
[Linux](/wiki/linux.md)
|
||||||
distribution.
|
distribution.
|
||||||
|
The package manager of Arch Linux is generally
|
||||||
|
[Pacman and various possible AUR ones](/wiki/linux/package_manager/pacman_and_aur.md).
|
||||||
|
|
||||||
## Package Manager and AUR
|
## Package Manager and AUR
|
||||||
|
|
||||||
Arch Linux uses the
|
Arch Linux uses the
|
||||||
[pacman](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay) package
|
[pacman](/wiki/linux/package_manager/pacman_and_aur.md) package
|
||||||
manager.
|
manager.
|
||||||
An additional repository for user made software exists.
|
An additional repository for user made software exists.
|
||||||
It is called Arch User Repository (AUR).
|
It is called Arch User Repository (AUR).
|
||||||
The Arch User Repositories (AUR) features community-made packages that can be
|
The Arch User Repositories (AUR) features community-made packages that can be
|
||||||
installed with different
|
installed with different
|
||||||
[package manager for that purpose](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay).
|
[package manager for that purpose](/wiki/linux/package_manager/pacman_and_aur.md).
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
|||||||
@@ -208,7 +208,7 @@ en_US.UTF-8 UTF-8
|
|||||||
In [Arch Linux](/wiki/linux/arch-linux.md) 32-bit software is managed via the `multilib`
|
In [Arch Linux](/wiki/linux/arch-linux.md) 32-bit software is managed via the `multilib`
|
||||||
repository, which is for example needed for the `steam` package.
|
repository, which is for example needed for the `steam` package.
|
||||||
Due to it not being enabled by default, this has to be
|
Due to it not being enabled by default, this has to be
|
||||||
[done manually](/wiki/linux/package_manager.md#enabling-multilib).
|
[done manually](/wiki/linux/package_manager/pacman_and_aur.md#enabling-multilib).
|
||||||
For this navigate to `/etc/pacman.conf` and find and uncomment the following lines.
|
For this navigate to `/etc/pacman.conf` and find and uncomment the following lines.
|
||||||
|
|
||||||
```txt
|
```txt
|
||||||
@@ -244,7 +244,7 @@ should be checked for further setups.
|
|||||||
|
|
||||||
In some cases the Arch keyring needs to be repopulated.
|
In some cases the Arch keyring needs to be repopulated.
|
||||||
This is discussed in
|
This is discussed in
|
||||||
[the package manager entry](/wiki/linux/package_manager.md#error-during-updating-is-marginal-trust).
|
[the package manager entry](/wiki/linux/package_manager/pacman_and_aur.md#error-during-updating-is-marginal-trust).
|
||||||
|
|
||||||
Additionally if you have a NVidia Graphics Cards you should read
|
Additionally if you have a NVidia Graphics Cards you should read
|
||||||
[the NVidia article](../nvidia.md) too.
|
[the NVidia article](../nvidia.md) too.
|
||||||
|
|||||||
67
wiki/linux/debian.md
Normal file
67
wiki/linux/debian.md
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
# Debian
|
||||||
|
|
||||||
|
[Debian](https://www.debian.org/) is a free and open-source [Linux](/wiki/linux.md) distribution.
|
||||||
|
Debian uses the [APT](/wiki/linux/package_manager/apt.md) package manager.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
This section addresses the usage of Debian specific tasks.
|
||||||
|
|
||||||
|
### Retrieve Debian Version
|
||||||
|
|
||||||
|
The current version of a Debian system can be retrieved by running the following command.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cat /etc/os-release
|
||||||
|
```
|
||||||
|
|
||||||
|
### Upgrading to a Higher Major Version
|
||||||
|
|
||||||
|
The first step for a major upgrade usually is
|
||||||
|
[retrieving the current version](#retrieve-debian-version) to check the version that should be
|
||||||
|
installed.
|
||||||
|
|
||||||
|
If the user of the system to perform a major version upgrade on is using [Docker](/wiki/docker.md)
|
||||||
|
some additional steps have to be taken before the upgrade.
|
||||||
|
It is generally recommended to hold the Docker upgrade and performing it later.
|
||||||
|
For this reason the following command has to be run first.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
apt-mark hold docker-ce docker-ce-cli containerd.io
|
||||||
|
```
|
||||||
|
|
||||||
|
Afterward the packages of the current major release version have to be
|
||||||
|
[upgrading](/wiki/linux/package_manager/apt.md#updating-upgrading) using APTs `full-upgrade`
|
||||||
|
option.
|
||||||
|
Then a reboot is recommended.
|
||||||
|
|
||||||
|
After restarting APT needs to be assigned new sources.
|
||||||
|
This can be done by editing the file `/etc/apt/sources.list` and replacing everything within with
|
||||||
|
the new sources.
|
||||||
|
For Debians 12th version called bookworm this lines to add are the following.
|
||||||
|
|
||||||
|
```txt
|
||||||
|
deb http://deb.debian.org/debian bookworm main contrib non-free
|
||||||
|
deb http://deb.debian.org/debian bookworm-updates main contrib non-free
|
||||||
|
deb http://security.debian.org/debian-security bookworm-security main contrib non-free
|
||||||
|
```
|
||||||
|
|
||||||
|
Following this a [full upgrade](/wiki/linux/package_manager/apt.md#updating-upgrading) has to be
|
||||||
|
performed.
|
||||||
|
Sometimes this process asks if the user wants to replace the local configuration files with newer
|
||||||
|
ones.
|
||||||
|
It is generally recommended to select `N` and reject these new configurations.
|
||||||
|
|
||||||
|
Finally another reboot is needed and the version number can be
|
||||||
|
[checked again](#retrieve-debian-version) confirming that the major version upgrade was
|
||||||
|
successfully performed.
|
||||||
|
|
||||||
|
When the system ran Docker and its upgrade was put on hold as described at the start of this
|
||||||
|
section the following commands have to be run to finalize the major upgrade, take Docker from the
|
||||||
|
hold list and upgrade it.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
apt-mark unhold docker-ce docker-ce-cli containerd.io
|
||||||
|
apt update
|
||||||
|
apt install --only-upgrade docker-ce docker-ce-cli containerd.io
|
||||||
|
```
|
||||||
@@ -143,7 +143,7 @@ There are various files that are unused but saved by default.
|
|||||||
The following list shows some options to quickly clean up space.
|
The following list shows some options to quickly clean up space.
|
||||||
|
|
||||||
- [System Trash](#clearing-system-trash-bin)
|
- [System Trash](#clearing-system-trash-bin)
|
||||||
- [Arch Linux/Pacman/Yay Cache](/wiki/linux/package_manager.md#clear-cache)
|
- [Package Mangers](/wiki/linux/package_manager.md)
|
||||||
- [ViFM Trash Bin](/wiki/linux/vifm.md#empty-trash)
|
- [ViFM Trash Bin](/wiki/linux/vifm.md#empty-trash)
|
||||||
|
|
||||||
## Error solving
|
## Error solving
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ linux systems.
|
|||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
The `flatpak` package can be installed by most distribution specific package
|
The `flatpak` package can be installed by most distribution specific
|
||||||
managers (e.g. [pacman or yay](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay)).
|
[package managers](/wiki/linux/package_manager.md)).
|
||||||
After installation it is important to add [flathub](https://flathub.org/home),
|
After installation it is important to add [flathub](https://flathub.org/home),
|
||||||
a source for many Flatpak packages.
|
a source for many Flatpak packages.
|
||||||
The addition of this can be done by running
|
The addition of this can be done by running
|
||||||
|
|||||||
@@ -2,325 +2,11 @@
|
|||||||
|
|
||||||
Package managers are important programs to get software onto your system.
|
Package managers are important programs to get software onto your system.
|
||||||
|
|
||||||
## Arch Linux: Pacman and Yay
|
The following is a list of package managers and the corresponding [Linux](/wiki/linux.md)
|
||||||
|
distributions.
|
||||||
In [Arch Linux](/wiki/linux/arch-linux.md) there are 2 main types of
|
|
||||||
package managers.
|
- [Debian](/wiki/linux/debian.md) and Debian-based distributions like
|
||||||
The first is pacman, the default package manager.
|
[Proxmox](/wiki/linux/proxmox.md) use the [APT](/wiki/linux/package_manager/apt.md) package
|
||||||
|
manager.
|
||||||
For the second type there are many different managers to chose from.
|
- [Arch Linux](/wiki/linux/arch-linux.md) and Arch-based distributions use
|
||||||
Those managers are handling for the Arch User Repositories (AUR).
|
[Pacman]() and various managers for the AUR.
|
||||||
In this article yay is used as the go to AUR manager.
|
|
||||||
yay is also a wrapper for pacman so yay can be used instead of pacman to
|
|
||||||
install and update both AUR and main repository programs.
|
|
||||||
It features the same syntax.
|
|
||||||
|
|
||||||
### Usage
|
|
||||||
|
|
||||||
This section addresses various usages of the arch linux package managers.
|
|
||||||
|
|
||||||
#### Ignoring Packages
|
|
||||||
|
|
||||||
Packages can be ignored by adding the package in `/etc/pacman.conf` under `IgnorePkg`.
|
|
||||||
In the following example `waybar` is ignored from updates.
|
|
||||||
To add more packages just add them separated by spaces.
|
|
||||||
|
|
||||||
```txt
|
|
||||||
IgnorePkg = waybar
|
|
||||||
```
|
|
||||||
|
|
||||||
To unignore the package from updates remove it from this line.
|
|
||||||
|
|
||||||
#### Downgrading Packages
|
|
||||||
|
|
||||||
Packages of the AUR can be downgraded by using the
|
|
||||||
[Downgrade](https://github.com/archlinux-downgrade/downgrade) program.
|
|
||||||
This program can then easily be used to an AUR package.
|
|
||||||
This works like the following assuming the package `v4l2loopback-dmks` needs to be downgraded.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
sudo downgrade v4l2loopback-dmks
|
|
||||||
```
|
|
||||||
|
|
||||||
Afterwards the target version can be selected and the downgrading process will conclude.
|
|
||||||
After the downgrade of a package you will get asked if you want to
|
|
||||||
[ignore future updates](#ignoring-packages).
|
|
||||||
|
|
||||||
#### Manual Installation of a `PKGBUILD` File
|
|
||||||
|
|
||||||
A `PKGBUILD` file is a [shell](/wiki/linux/shell.md) script that contains the installation
|
|
||||||
information that is required by the Arch Linux.
|
|
||||||
Using the `makepkg` command it can be installed like the following command shows.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
makepkg -sirc
|
|
||||||
```
|
|
||||||
|
|
||||||
Afterwards it is installed on the system and can be further managed (especially uninstalled) by the
|
|
||||||
Pacman package manager.
|
|
||||||
|
|
||||||
#### Installing an AUR Program with a Specific Version
|
|
||||||
|
|
||||||
The installation of a specific version of an AUR program can be easily achieved.
|
|
||||||
For this navigate to the AUR page of the program to install.
|
|
||||||
On the right-hand side click on `View Changes` and select the version you want to install in the
|
|
||||||
commit list.
|
|
||||||
Next to `download` a `.tar.gz` file can be downloaded which includes a `PKGBUILD` file.
|
|
||||||
Afterwards it needs to be [uncompressed](/wiki/linux/tar.md#uncompressing-a-tar-archive).
|
|
||||||
|
|
||||||
#### Clear Cache
|
|
||||||
|
|
||||||
The cache of all packages except the one installed can be deleted by running the following command.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
pacman -Sc
|
|
||||||
```
|
|
||||||
|
|
||||||
Alternatively the pacman cache can be deleted partly by running the following command which will
|
|
||||||
clear the cache of pacman except for the latest version.
|
|
||||||
The amount of versions to keep can be specified by changing the number in the following command
|
|
||||||
accordingly.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
paccache -rvk1
|
|
||||||
```
|
|
||||||
|
|
||||||
And finally the following command will remove all cached files that belong to uninstalled packages.
|
|
||||||
Again the number can be changed to keep a specific number of versions.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
paccache -rvuk0
|
|
||||||
```
|
|
||||||
|
|
||||||
Since `yay` mirrors the usage of `pacman` it can be used the same way and will clean both caches.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
yay -Sc
|
|
||||||
```
|
|
||||||
|
|
||||||
Similar to `paccache` a command called [yaycache](https://github.com/aokellermann/yaycache) can be
|
|
||||||
used.
|
|
||||||
It follows the same options as `paccache`.
|
|
||||||
|
|
||||||
The clearing of the cache can be automated by using a [hook](#hook-clear-cache).
|
|
||||||
|
|
||||||
#### Enabling `multilib`
|
|
||||||
|
|
||||||
`multilib` is a repository that contains 32-bit software and libraries.
|
|
||||||
By default it is not enabled.
|
|
||||||
To enable it search and uncomment the following lines in the file `/etc/pacman.conf`.
|
|
||||||
|
|
||||||
```txt
|
|
||||||
[multilib]
|
|
||||||
Include = /etc/pacman.d/mirrorlist
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Hooks
|
|
||||||
|
|
||||||
Hooks are commands that are run before or after installation of one or more packages.
|
|
||||||
They are needed to have the `.hook` extension and can be found inside two directories.
|
|
||||||
The first one is `/usr/share/libalpm/hooks/`.
|
|
||||||
The second one is defined in `HookDir` inside the file `/etc/pacman.conf`.
|
|
||||||
By default it points towards `/etc/pacman.d/hooks`.
|
|
||||||
|
|
||||||
Examples of hooks can be found in the following sections.
|
|
||||||
|
|
||||||
##### Hook: List Orphans
|
|
||||||
|
|
||||||
The following hook will display orphans after any package is update.
|
|
||||||
It was found in a
|
|
||||||
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
|
|
||||||
which references a
|
|
||||||
[gist by Strykar](https://gist.github.com/Strykar/3b3cd5bbdabe7e5c77f9414b2b4fe7e8).
|
|
||||||
|
|
||||||
```txt
|
|
||||||
[Trigger]
|
|
||||||
Operation = Install
|
|
||||||
Operation = Upgrade
|
|
||||||
Operation = Remove
|
|
||||||
Type = Package
|
|
||||||
Target = *
|
|
||||||
|
|
||||||
[Action]
|
|
||||||
Description = Searching for orphaned packages...
|
|
||||||
When = PostTransaction
|
|
||||||
Exec = /usr/bin/bash -c "/usr/bin/pacman -Qtd || /usr/bin/echo '==> no orphans found.'"
|
|
||||||
```
|
|
||||||
|
|
||||||
##### Hook: Clear Cache
|
|
||||||
|
|
||||||
The following hook will [clear the pacman cache](#clear-cache) except for the last version of a package.
|
|
||||||
It was found in a
|
|
||||||
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
|
|
||||||
which references an
|
|
||||||
[AUR comment by itaranto](https://aur.archlinux.org/packages/pacman-cleanup-hook).
|
|
||||||
|
|
||||||
```txt
|
|
||||||
[Trigger]
|
|
||||||
Type = Package
|
|
||||||
Operation = Remove
|
|
||||||
Operation = Install
|
|
||||||
Operation = Upgrade
|
|
||||||
Target = *
|
|
||||||
|
|
||||||
[Action]
|
|
||||||
Description = Removing unnecessary cached files (keeping the latest one)...
|
|
||||||
When = PostTransaction
|
|
||||||
Exec = /usr/bin/paccache -rvk1 && paccache -ruvk0
|
|
||||||
```
|
|
||||||
|
|
||||||
##### Hook: Informant
|
|
||||||
|
|
||||||
The following hook will use [informant](https://github.com/bradford-smith94/informant) to check for
|
|
||||||
Arch News that may require manual intervention and not allow the update if there are news unread.
|
|
||||||
It was found in a
|
|
||||||
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
|
|
||||||
which references the
|
|
||||||
[informant Github](https://github.com/bradford-smith94/informant/blob/master/informant.hook).
|
|
||||||
|
|
||||||
```txt
|
|
||||||
[Trigger]
|
|
||||||
Operation = Install
|
|
||||||
Operation = Upgrade
|
|
||||||
Type = Package
|
|
||||||
Target = *
|
|
||||||
Target = !informant
|
|
||||||
|
|
||||||
[Action]
|
|
||||||
Description = Checking Arch News with Informant...
|
|
||||||
When = PreTransaction
|
|
||||||
Exec = /usr/bin/informant check
|
|
||||||
Depends = informant
|
|
||||||
AbortOnFail
|
|
||||||
```
|
|
||||||
|
|
||||||
##### Hook: Update Package Mirrorlist
|
|
||||||
|
|
||||||
The following hook will use [reflector](https://xyne.dev/projects/reflector/) to update the pacman
|
|
||||||
mirrorlist.
|
|
||||||
It will use german mirrors (`-c de`), will list the fastest 15 mirrors (`-n 15`) and only do so if
|
|
||||||
the mirror was online in the last 24 hours (`-a 24`).
|
|
||||||
It was found in a
|
|
||||||
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
|
|
||||||
which references the
|
|
||||||
[pacman-hooks Github](https://github.com/desbma/pacman-hooks/blob/master/reflector/reflector.hook).
|
|
||||||
|
|
||||||
```txt
|
|
||||||
[Trigger]
|
|
||||||
Operation = Upgrade
|
|
||||||
Type = Package
|
|
||||||
Target = pacman-mirrorlist
|
|
||||||
|
|
||||||
[Action]
|
|
||||||
Description = Updating pacman-mirrorlist with reflector...
|
|
||||||
When = PostTransaction
|
|
||||||
Depends = reflector
|
|
||||||
Exec = /bin/bash -c 'reflector -c de -n 15 -a 24 > /etc/pacman.d/mirrorlist ; test -f /etc/pacman.d/mirrorlist.pacnew && mv -v /etc/pacman.d/mirrorlist.{pacnew,orig} || true'
|
|
||||||
```
|
|
||||||
|
|
||||||
##### Hook: Kernel Reboot Needed
|
|
||||||
|
|
||||||
The following hook will use determine if a reboot is needed because the kernel was updated.
|
|
||||||
It was found in a
|
|
||||||
[reddit commend by progandy](https://www.reddit.com/r/archlinux/comments/dsnu81/comment/f6sogat).
|
|
||||||
|
|
||||||
```txt
|
|
||||||
[Trigger]
|
|
||||||
Operation = Install
|
|
||||||
Operation = Upgrade
|
|
||||||
Operation = Remove
|
|
||||||
Type = File
|
|
||||||
Target = usr/lib/modules/*
|
|
||||||
|
|
||||||
[Action]
|
|
||||||
Description = Check for upgrade of running kernel...
|
|
||||||
When = PostTransaction
|
|
||||||
Exec = /bin/bash -c "[[ -f \"/proc/modules\" && ! -d \"/usr/lib/modules/$(uname -r)\" ]] && printf '==> WARNING: %s\n -> %s\n' 'Running kernel has been updated or removed!' 'A reboot is required!' || true"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Troubleshooting
|
|
||||||
|
|
||||||
This section will focus on errors and the fixing of errors of package managers.
|
|
||||||
|
|
||||||
#### `/usr/lib/firmware/nvidia/ad104` exists in filesystem linux-firmware-nvidia
|
|
||||||
|
|
||||||
This error comes from a decision to split the firmware modules into different parts.
|
|
||||||
An easy way to fix it is by simply reinstalling the `linux-firmware` package and updating the
|
|
||||||
packages of the system.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
pacman -Syu linux-firmware
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Update Mirrorlist
|
|
||||||
|
|
||||||
After a while not updating the system it is possible for the mirrorlist to be
|
|
||||||
outdated.
|
|
||||||
This can be fixed by updating it with the following command:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
curl -o /etc/pacman.d/mirrorlist https://archlinux.org/mirrorlist/all/
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Error While Importing Keys
|
|
||||||
|
|
||||||
Both `yay` and `pacman` use [GPG keys](/wiki/linux/gpg.md).
|
|
||||||
It is possible that it runs into errors when importing new keys.
|
|
||||||
If this happens you should try to restart the GPG key server
|
|
||||||
[as explained in the GPG entry](/wiki/linux/gpg.md#restart-the-gpg-server).
|
|
||||||
|
|
||||||
#### Unknown Public Key
|
|
||||||
|
|
||||||
If the error `ERROR: One or more PGP signatures could not be verified!`, you
|
|
||||||
have to manually receive the key and trust it.
|
|
||||||
This can be done [as explained in the GPG entry](/wiki/linux/gpg.md#receive-a-key-and-trust-it).
|
|
||||||
|
|
||||||
The identifier of the key usually gets gets printed in the line above the error looking like
|
|
||||||
`FAILED (unknown public key <KEYID>)`.
|
|
||||||
|
|
||||||
#### Error During Updating `is marginal trust`
|
|
||||||
|
|
||||||
If the error `[...] Key [...] is marginal trust` (also `of unknown trust`) occurs while updating
|
|
||||||
the system, it can be fixed by running the following commands and then restarting
|
|
||||||
the update process of the package manager.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
pacman -Sy archlinux-keyring
|
|
||||||
pacman-key --populate archlinux
|
|
||||||
pacman-key --refresh-keys
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Error During Updating `the following untracked working tree files would be overwritten`
|
|
||||||
|
|
||||||
The error `the following untracked working tree files would be overwritten` can happen when the
|
|
||||||
cache features a changed version of the files used by yay to update the package.
|
|
||||||
This can easily be fixed by removing the cache of the corresponding package.
|
|
||||||
|
|
||||||
#### Python `ModuleNotFoundError: No module named...`
|
|
||||||
|
|
||||||
This section is based on a
|
|
||||||
[StackOverflow post by Helen](https://stackoverflow.com/questions/55923868/how-to-fix-modulenotfounderror-no-module-named-setuptools).
|
|
||||||
|
|
||||||
In this case the error stems from a missing package.
|
|
||||||
Normally it can easily be fixed by installing that corresponding package.
|
|
||||||
But please note that [pyenv](/wiki/programming_language/golang.md#setup) can hide packages if the
|
|
||||||
global Python version is set to something other than `system`.
|
|
||||||
This is especially the case on [Arch Linux-systems](/wiki/linux/arch-linux.md) because Python
|
|
||||||
packages are also installed via [Pacman or Yay](#arch-linux-pacman-and-yay).
|
|
||||||
In this case the global Version has to be changed to `system` or the package installed to the
|
|
||||||
non-system Python version.
|
|
||||||
|
|
||||||
#### Error `exists in filesystem`
|
|
||||||
|
|
||||||
This section is based on a
|
|
||||||
[reddit post by 194668PT](https://www.reddit.com/r/archlinux/comments/17jempk/pacman_exists_in_filesystem_errors/).
|
|
||||||
|
|
||||||
If an error shows up that describes that a file of a package `exists in filesystem` usually a
|
|
||||||
permission/owner error happened.
|
|
||||||
This can happen when running `pacman -Syyu`.
|
|
||||||
To update the package either way the following command can be used.
|
|
||||||
`<package name>` should be exchanged for the package that throws the error.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
sudo pacman -S --overwrite "*" <package name>
|
|
||||||
```
|
|
||||||
|
|||||||
38
wiki/linux/package_manager/apt.md
Normal file
38
wiki/linux/package_manager/apt.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# APT
|
||||||
|
|
||||||
|
In [Debian](/wiki/linux/debian.md) the APT package manager is used.
|
||||||
|
It is also used for various Debian-based distributions.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
This section addresses various usages of the APT package manager.
|
||||||
|
|
||||||
|
### Updating & Upgrading
|
||||||
|
|
||||||
|
This section addresses the updating of all packages managed by APT.
|
||||||
|
To update the packages it is recommended to first update the package list with the following
|
||||||
|
command.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
apt update
|
||||||
|
```
|
||||||
|
|
||||||
|
Afterwards there are two possible update types without changing the major release version.
|
||||||
|
|
||||||
|
The following command - `upgrade` - updates the packages only if no new or previously removed dependencies are
|
||||||
|
needed.
|
||||||
|
It is generally used for day-to-day updating without bigger jumps between versions.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
apt upgrade
|
||||||
|
```
|
||||||
|
|
||||||
|
The other option is `full-upgrade` which was previously also known as `dist-upgrade`.
|
||||||
|
This command will also install, remove and replace dependencies if it is needed to update the
|
||||||
|
package.
|
||||||
|
It is mostly used for bigger updates like Kernel or release upgrade without changing the major
|
||||||
|
version.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
apt full-upgrade
|
||||||
|
```
|
||||||
323
wiki/linux/package_manager/pacman_and_aur.md
Normal file
323
wiki/linux/package_manager/pacman_and_aur.md
Normal file
@@ -0,0 +1,323 @@
|
|||||||
|
# Pacman and AUR
|
||||||
|
|
||||||
|
In [Arch Linux](/wiki/linux/arch-linux.md) there are 2 main types of
|
||||||
|
package managers.
|
||||||
|
The first is pacman, the default package manager.
|
||||||
|
|
||||||
|
For the second type there are many different managers to chose from.
|
||||||
|
Those managers are handling for the Arch User Repositories (AUR).
|
||||||
|
|
||||||
|
In this article yay is used as the go to AUR manager.
|
||||||
|
yay is also a wrapper for pacman so yay can be used instead of pacman to
|
||||||
|
install and update both AUR and main repository programs.
|
||||||
|
It features the same syntax.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
This section addresses various usages of the arch linux package managers.
|
||||||
|
|
||||||
|
### Ignoring Packages
|
||||||
|
|
||||||
|
Packages can be ignored by adding the package in `/etc/pacman.conf` under `IgnorePkg`.
|
||||||
|
In the following example `waybar` is ignored from updates.
|
||||||
|
To add more packages just add them separated by spaces.
|
||||||
|
|
||||||
|
```txt
|
||||||
|
IgnorePkg = waybar
|
||||||
|
```
|
||||||
|
|
||||||
|
To unignore the package from updates remove it from this line.
|
||||||
|
|
||||||
|
### Downgrading Packages
|
||||||
|
|
||||||
|
Packages of the AUR can be downgraded by using the
|
||||||
|
[Downgrade](https://github.com/archlinux-downgrade/downgrade) program.
|
||||||
|
This program can then easily be used to an AUR package.
|
||||||
|
This works like the following assuming the package `v4l2loopback-dmks` needs to be downgraded.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo downgrade v4l2loopback-dmks
|
||||||
|
```
|
||||||
|
|
||||||
|
Afterwards the target version can be selected and the downgrading process will conclude.
|
||||||
|
After the downgrade of a package you will get asked if you want to
|
||||||
|
[ignore future updates](#ignoring-packages).
|
||||||
|
|
||||||
|
### Manual Installation of a `PKGBUILD` File
|
||||||
|
|
||||||
|
A `PKGBUILD` file is a [shell](/wiki/linux/shell.md) script that contains the installation
|
||||||
|
information that is required by the Arch Linux.
|
||||||
|
Using the `makepkg` command it can be installed like the following command shows.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
makepkg -sirc
|
||||||
|
```
|
||||||
|
|
||||||
|
Afterwards it is installed on the system and can be further managed (especially uninstalled) by the
|
||||||
|
Pacman package manager.
|
||||||
|
|
||||||
|
### Installing an AUR Program with a Specific Version
|
||||||
|
|
||||||
|
The installation of a specific version of an AUR program can be easily achieved.
|
||||||
|
For this navigate to the AUR page of the program to install.
|
||||||
|
On the right-hand side click on `View Changes` and select the version you want to install in the
|
||||||
|
commit list.
|
||||||
|
Next to `download` a `.tar.gz` file can be downloaded which includes a `PKGBUILD` file.
|
||||||
|
Afterwards it needs to be [uncompressed](/wiki/linux/tar.md#uncompressing-a-tar-archive).
|
||||||
|
|
||||||
|
### Clear Cache
|
||||||
|
|
||||||
|
The cache of all packages except the one installed can be deleted by running the following command.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pacman -Sc
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternatively the pacman cache can be deleted partly by running the following command which will
|
||||||
|
clear the cache of pacman except for the latest version.
|
||||||
|
The amount of versions to keep can be specified by changing the number in the following command
|
||||||
|
accordingly.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
paccache -rvk1
|
||||||
|
```
|
||||||
|
|
||||||
|
And finally the following command will remove all cached files that belong to uninstalled packages.
|
||||||
|
Again the number can be changed to keep a specific number of versions.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
paccache -rvuk0
|
||||||
|
```
|
||||||
|
|
||||||
|
Since `yay` mirrors the usage of `pacman` it can be used the same way and will clean both caches.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yay -Sc
|
||||||
|
```
|
||||||
|
|
||||||
|
Similar to `paccache` a command called [yaycache](https://github.com/aokellermann/yaycache) can be
|
||||||
|
used.
|
||||||
|
It follows the same options as `paccache`.
|
||||||
|
|
||||||
|
The clearing of the cache can be automated by using a [hook](#hook-clear-cache).
|
||||||
|
|
||||||
|
### Enabling `multilib`
|
||||||
|
|
||||||
|
`multilib` is a repository that contains 32-bit software and libraries.
|
||||||
|
By default it is not enabled.
|
||||||
|
To enable it search and uncomment the following lines in the file `/etc/pacman.conf`.
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[multilib]
|
||||||
|
Include = /etc/pacman.d/mirrorlist
|
||||||
|
```
|
||||||
|
|
||||||
|
### Hooks
|
||||||
|
|
||||||
|
Hooks are commands that are run before or after installation of one or more packages.
|
||||||
|
They are needed to have the `.hook` extension and can be found inside two directories.
|
||||||
|
The first one is `/usr/share/libalpm/hooks/`.
|
||||||
|
The second one is defined in `HookDir` inside the file `/etc/pacman.conf`.
|
||||||
|
By default it points towards `/etc/pacman.d/hooks`.
|
||||||
|
|
||||||
|
Examples of hooks can be found in the following sections.
|
||||||
|
|
||||||
|
#### Hook: List Orphans
|
||||||
|
|
||||||
|
The following hook will display orphans after any package is update.
|
||||||
|
It was found in a
|
||||||
|
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
|
||||||
|
which references a
|
||||||
|
[gist by Strykar](https://gist.github.com/Strykar/3b3cd5bbdabe7e5c77f9414b2b4fe7e8).
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[Trigger]
|
||||||
|
Operation = Install
|
||||||
|
Operation = Upgrade
|
||||||
|
Operation = Remove
|
||||||
|
Type = Package
|
||||||
|
Target = *
|
||||||
|
|
||||||
|
[Action]
|
||||||
|
Description = Searching for orphaned packages...
|
||||||
|
When = PostTransaction
|
||||||
|
Exec = /usr/bin/bash -c "/usr/bin/pacman -Qtd || /usr/bin/echo '==> no orphans found.'"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Hook: Clear Cache
|
||||||
|
|
||||||
|
The following hook will [clear the pacman cache](#clear-cache) except for the last version of a package.
|
||||||
|
It was found in a
|
||||||
|
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
|
||||||
|
which references an
|
||||||
|
[AUR comment by itaranto](https://aur.archlinux.org/packages/pacman-cleanup-hook).
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[Trigger]
|
||||||
|
Type = Package
|
||||||
|
Operation = Remove
|
||||||
|
Operation = Install
|
||||||
|
Operation = Upgrade
|
||||||
|
Target = *
|
||||||
|
|
||||||
|
[Action]
|
||||||
|
Description = Removing unnecessary cached files (keeping the latest one)...
|
||||||
|
When = PostTransaction
|
||||||
|
Exec = /usr/bin/paccache -rvk1 && paccache -ruvk0
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Hook: Informant
|
||||||
|
|
||||||
|
The following hook will use [informant](https://github.com/bradford-smith94/informant) to check for
|
||||||
|
Arch News that may require manual intervention and not allow the update if there are news unread.
|
||||||
|
It was found in a
|
||||||
|
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
|
||||||
|
which references the
|
||||||
|
[informant Github](https://github.com/bradford-smith94/informant/blob/master/informant.hook).
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[Trigger]
|
||||||
|
Operation = Install
|
||||||
|
Operation = Upgrade
|
||||||
|
Type = Package
|
||||||
|
Target = *
|
||||||
|
Target = !informant
|
||||||
|
|
||||||
|
[Action]
|
||||||
|
Description = Checking Arch News with Informant...
|
||||||
|
When = PreTransaction
|
||||||
|
Exec = /usr/bin/informant check
|
||||||
|
Depends = informant
|
||||||
|
AbortOnFail
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Hook: Update Package Mirrorlist
|
||||||
|
|
||||||
|
The following hook will use [reflector](https://xyne.dev/projects/reflector/) to update the pacman
|
||||||
|
mirrorlist.
|
||||||
|
It will use german mirrors (`-c de`), will list the fastest 15 mirrors (`-n 15`) and only do so if
|
||||||
|
the mirror was online in the last 24 hours (`-a 24`).
|
||||||
|
It was found in a
|
||||||
|
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
|
||||||
|
which references the
|
||||||
|
[pacman-hooks Github](https://github.com/desbma/pacman-hooks/blob/master/reflector/reflector.hook).
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[Trigger]
|
||||||
|
Operation = Upgrade
|
||||||
|
Type = Package
|
||||||
|
Target = pacman-mirrorlist
|
||||||
|
|
||||||
|
[Action]
|
||||||
|
Description = Updating pacman-mirrorlist with reflector...
|
||||||
|
When = PostTransaction
|
||||||
|
Depends = reflector
|
||||||
|
Exec = /bin/bash -c 'reflector -c de -n 15 -a 24 > /etc/pacman.d/mirrorlist ; test -f /etc/pacman.d/mirrorlist.pacnew && mv -v /etc/pacman.d/mirrorlist.{pacnew,orig} || true'
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Hook: Kernel Reboot Needed
|
||||||
|
|
||||||
|
The following hook will use determine if a reboot is needed because the kernel was updated.
|
||||||
|
It was found in a
|
||||||
|
[reddit commend by progandy](https://www.reddit.com/r/archlinux/comments/dsnu81/comment/f6sogat).
|
||||||
|
|
||||||
|
```txt
|
||||||
|
[Trigger]
|
||||||
|
Operation = Install
|
||||||
|
Operation = Upgrade
|
||||||
|
Operation = Remove
|
||||||
|
Type = File
|
||||||
|
Target = usr/lib/modules/*
|
||||||
|
|
||||||
|
[Action]
|
||||||
|
Description = Check for upgrade of running kernel...
|
||||||
|
When = PostTransaction
|
||||||
|
Exec = /bin/bash -c "[[ -f \"/proc/modules\" && ! -d \"/usr/lib/modules/$(uname -r)\" ]] && printf '==> WARNING: %s\n -> %s\n' 'Running kernel has been updated or removed!' 'A reboot is required!' || true"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
This section will focus on errors and the fixing of errors of package managers.
|
||||||
|
|
||||||
|
### `/usr/lib/firmware/nvidia/ad104` exists in filesystem linux-firmware-nvidia
|
||||||
|
|
||||||
|
This error comes from a decision to split the firmware modules into different parts.
|
||||||
|
An easy way to fix it is by simply reinstalling the `linux-firmware` package and updating the
|
||||||
|
packages of the system.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pacman -Syu linux-firmware
|
||||||
|
```
|
||||||
|
|
||||||
|
### Update Mirrorlist
|
||||||
|
|
||||||
|
After a while not updating the system it is possible for the mirrorlist to be
|
||||||
|
outdated.
|
||||||
|
This can be fixed by updating it with the following command:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
curl -o /etc/pacman.d/mirrorlist https://archlinux.org/mirrorlist/all/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Error While Importing Keys
|
||||||
|
|
||||||
|
Both `yay` and `pacman` use [GPG keys](/wiki/linux/gpg.md).
|
||||||
|
It is possible that it runs into errors when importing new keys.
|
||||||
|
If this happens you should try to restart the GPG key server
|
||||||
|
[as explained in the GPG entry](/wiki/linux/gpg.md#restart-the-gpg-server).
|
||||||
|
|
||||||
|
### Unknown Public Key
|
||||||
|
|
||||||
|
If the error `ERROR: One or more PGP signatures could not be verified!`, you
|
||||||
|
have to manually receive the key and trust it.
|
||||||
|
This can be done [as explained in the GPG entry](/wiki/linux/gpg.md#receive-a-key-and-trust-it).
|
||||||
|
|
||||||
|
The identifier of the key usually gets gets printed in the line above the error looking like
|
||||||
|
`FAILED (unknown public key <KEYID>)`.
|
||||||
|
|
||||||
|
### Error During Updating `is marginal trust`
|
||||||
|
|
||||||
|
If the error `[...] Key [...] is marginal trust` (also `of unknown trust`) occurs while updating
|
||||||
|
the system, it can be fixed by running the following commands and then restarting
|
||||||
|
the update process of the package manager.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pacman -Sy archlinux-keyring
|
||||||
|
pacman-key --populate archlinux
|
||||||
|
pacman-key --refresh-keys
|
||||||
|
```
|
||||||
|
|
||||||
|
### Error During Updating `the following untracked working tree files would be overwritten`
|
||||||
|
|
||||||
|
The error `the following untracked working tree files would be overwritten` can happen when the
|
||||||
|
cache features a changed version of the files used by yay to update the package.
|
||||||
|
This can easily be fixed by removing the cache of the corresponding package.
|
||||||
|
|
||||||
|
### Python `ModuleNotFoundError: No module named...`
|
||||||
|
|
||||||
|
This section is based on a
|
||||||
|
[StackOverflow post by Helen](https://stackoverflow.com/questions/55923868/how-to-fix-modulenotfounderror-no-module-named-setuptools).
|
||||||
|
|
||||||
|
In this case the error stems from a missing package.
|
||||||
|
Normally it can easily be fixed by installing that corresponding package.
|
||||||
|
But please note that [pyenv](/wiki/programming_language/golang.md#setup) can hide packages if the
|
||||||
|
global Python version is set to something other than `system`.
|
||||||
|
This is especially the case on [Arch Linux-systems](/wiki/linux/arch-linux.md) because Python
|
||||||
|
packages are also installed via [Pacman or Yay](#arch-linux-pacman-and-yay).
|
||||||
|
In this case the global Version has to be changed to `system` or the package installed to the
|
||||||
|
non-system Python version.
|
||||||
|
|
||||||
|
### Error `exists in filesystem`
|
||||||
|
|
||||||
|
This section is based on a
|
||||||
|
[reddit post by 194668PT](https://www.reddit.com/r/archlinux/comments/17jempk/pacman_exists_in_filesystem_errors/).
|
||||||
|
|
||||||
|
If an error shows up that describes that a file of a package `exists in filesystem` usually a
|
||||||
|
permission/owner error happened.
|
||||||
|
This can happen when running `pacman -Syyu`.
|
||||||
|
To update the package either way the following command can be used.
|
||||||
|
`<package name>` should be exchanged for the package that throws the error.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo pacman -S --overwrite "*" <package name>
|
||||||
|
```
|
||||||
@@ -1,8 +1,103 @@
|
|||||||
# Proxmox
|
# Proxmox
|
||||||
|
|
||||||
Proxmox is an environment for virtual machines and containers.
|
[Proxmox](https://proxmox.com/) is an environment for virtual machines and containers.
|
||||||
|
It is based on [Debian](/wiki/linux/debian.md) and uses the package manager
|
||||||
|
[APT](/wiki/linux/package_manager/apt.md).
|
||||||
|
|
||||||
## Disk Management
|
## Usage
|
||||||
|
|
||||||
|
This section addresses the usage of Proxmox specific tasks.
|
||||||
|
|
||||||
|
### Retrieve PVE Version
|
||||||
|
|
||||||
|
The current version of the Proxmox Virtual Environment can be retrieved by running the following
|
||||||
|
command.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pveversion
|
||||||
|
```
|
||||||
|
|
||||||
|
### Upgrading to a Higher Major Version
|
||||||
|
|
||||||
|
The first step for a major upgrade usually is
|
||||||
|
[retrieving the current version](#retrieve-pve-version) to check the version that should be
|
||||||
|
installed.
|
||||||
|
|
||||||
|
The way of updating Proxmox is very similar to [Debian](/wiki/linux/debian.md) since it is also
|
||||||
|
based on it.
|
||||||
|
However there are some differences.
|
||||||
|
Therefore it is described here in detail.
|
||||||
|
|
||||||
|
If the user of the system to perform a major version upgrade on is using [Docker](/wiki/docker.md)
|
||||||
|
some additional steps have to be taken before the upgrade.
|
||||||
|
It is generally recommended to hold the Docker upgrade and performing it later.
|
||||||
|
For this reason the following command has to be run first.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
apt-mark hold docker-ce docker-ce-cli containerd.io
|
||||||
|
```
|
||||||
|
|
||||||
|
First the packages of the current major release version have to be
|
||||||
|
[upgrading](/wiki/linux/package_manager/apt.md#updating-upgrading) using APTs `full-upgrade`
|
||||||
|
option.
|
||||||
|
Then a reboot is recommended.
|
||||||
|
|
||||||
|
At this point the state of the system can be checked this can be done by a special Proxmox command.
|
||||||
|
Depending on the version the system is on the command may differ.
|
||||||
|
If the system is for example running PVE 8 (based on [Debian 12](/wiki/linux/debian.md)) then the
|
||||||
|
following command can be used.
|
||||||
|
Similar commands exist for other versions (for example `pve7to8`).
|
||||||
|
|
||||||
|
```
|
||||||
|
pve8to9
|
||||||
|
```
|
||||||
|
|
||||||
|
This will check if the current state of the system is ready for the major version upgrade.
|
||||||
|
It is not recommended to continue with errors or without running these checks
|
||||||
|
|
||||||
|
Now APT needs to be assigned new sources.
|
||||||
|
This can be done by editing the file `/etc/apt/sources.list` and replacing everything within with
|
||||||
|
the new sources.
|
||||||
|
For PVE 8 - which corresponds to Debians 12th version called bookworm - this lines to add are the
|
||||||
|
following.
|
||||||
|
|
||||||
|
```txt
|
||||||
|
deb http://deb.debian.org/debian bookworm main contrib non-free
|
||||||
|
deb http://deb.debian.org/debian bookworm-updates main contrib non-free
|
||||||
|
deb http://security.debian.org/debian-security bookworm-security main contrib non-free
|
||||||
|
```
|
||||||
|
|
||||||
|
On Proxmox there are two additional source lists that need to be changed.
|
||||||
|
|
||||||
|
The first one is located at `/etc/apt/sources.list.d/pve-no-subscription.list` and should look
|
||||||
|
similar to the following.
|
||||||
|
|
||||||
|
```txt
|
||||||
|
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
|
||||||
|
```
|
||||||
|
|
||||||
|
The list placed at `/etc/apt/sources.list.d/pve-enterprise.list` should be commented out entirely
|
||||||
|
if the system is not running the enterprise version.
|
||||||
|
|
||||||
|
Following this a [full upgrade](/wiki/linux/package_manager/apt.md#updating-upgrading) has to be
|
||||||
|
performed.
|
||||||
|
Sometimes this process asks if the user wants to replace the local configuration files with newer
|
||||||
|
ones.
|
||||||
|
It is generally recommended to select `N` and reject these new configurations.
|
||||||
|
|
||||||
|
Finally another reboot is needed and the version number can be
|
||||||
|
[checked again](#retrieve-pve-version) confirming that the major version upgrade was
|
||||||
|
successfully performed.
|
||||||
|
|
||||||
|
When the system ran Docker and its upgrade was put on hold as described at the start of this
|
||||||
|
section the following commands have to be run to finalize the major upgrade, take Docker from the
|
||||||
|
hold list and upgrade it.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
apt-mark unhold docker-ce docker-ce-cli containerd.io
|
||||||
|
apt update
|
||||||
|
apt install --only-upgrade docker-ce docker-ce-cli containerd.io
|
||||||
|
```
|
||||||
|
|
||||||
### Adding a LVM to Proxmox
|
### Adding a LVM to Proxmox
|
||||||
|
|
||||||
@@ -12,7 +107,7 @@ Then add the LVM via the web-interface.
|
|||||||
Select Datacenter and Storage. The `Add` and choose `LVM`.
|
Select Datacenter and Storage. The `Add` and choose `LVM`.
|
||||||
After that follow the instructions and fill in the fields to your liking.
|
After that follow the instructions and fill in the fields to your liking.
|
||||||
|
|
||||||
### Enlarging disk of a VM
|
### Enlarging Disk of a VM
|
||||||
|
|
||||||
Make sure there is enough disk space available.
|
Make sure there is enough disk space available.
|
||||||
For further information see [the disk management article](./disk-management.md)
|
For further information see [the disk management article](./disk-management.md)
|
||||||
@@ -39,7 +134,7 @@ can be referenced for LVM systems.
|
|||||||
After that grow the filesystem in the vm as described in
|
After that grow the filesystem in the vm as described in
|
||||||
[the disk management article](/wiki/linux/disk-management.md#growing-a-file-system).
|
[the disk management article](/wiki/linux/disk-management.md#growing-a-file-system).
|
||||||
|
|
||||||
## Remove local-lvm and add its size to local
|
### Remove Local-LVM and Add Its Size to Local
|
||||||
|
|
||||||
First remove `local-lvm` with `lvremove /dev/pve/data`.
|
First remove `local-lvm` with `lvremove /dev/pve/data`.
|
||||||
Then remove `local-lvm` in the proxmox gui via `Datacenter/Storage/Remove`.
|
Then remove `local-lvm` in the proxmox gui via `Datacenter/Storage/Remove`.
|
||||||
@@ -47,9 +142,7 @@ Change the `Content` of the remaining storage according to your needs.
|
|||||||
Add the free storage to the remaining storage with `lvresize -rl +100%FREE /dev/pve/root`.
|
Add the free storage to the remaining storage with `lvresize -rl +100%FREE /dev/pve/root`.
|
||||||
Finally extend the filesystem `resize2fs /dev/mapper/pve-root`.
|
Finally extend the filesystem `resize2fs /dev/mapper/pve-root`.
|
||||||
|
|
||||||
## VM passthrough
|
### USB Passthrough
|
||||||
|
|
||||||
### USB passthrough
|
|
||||||
|
|
||||||
On the host system find the usb you're looking to pass through with
|
On the host system find the usb you're looking to pass through with
|
||||||
|
|
||||||
@@ -69,14 +162,14 @@ for example
|
|||||||
qm set 101 -usb0 host=aaaa:8816
|
qm set 101 -usb0 host=aaaa:8816
|
||||||
```
|
```
|
||||||
|
|
||||||
### PCI/GPU passthrough
|
### PCI/GPU Passthrough
|
||||||
|
|
||||||
To use GPUs or other PCI devices you need to work with PCI passthrough.
|
To use GPUs or other PCI devices you need to work with PCI passthrough.
|
||||||
For documentation you can look in the [Proxmox wiki](https://pve.proxmox.com/wiki/Pci_passthrough).
|
For documentation you can look in the [Proxmox wiki](https://pve.proxmox.com/wiki/Pci_passthrough).
|
||||||
There is also an [article](https://www.reddit.com/r/homelab/comments/b5xpua/the_ultimate_beginners_guide_to_gpu_passthrough)
|
There is also an [article](https://www.reddit.com/r/homelab/comments/b5xpua/the_ultimate_beginners_guide_to_gpu_passthrough)
|
||||||
on reddit, that focusses especially on windows 10 VMs with GPU passthrough.
|
on reddit, that focusses especially on windows 10 VMs with GPU passthrough.
|
||||||
|
|
||||||
### Increasing backup-limit of Proxmox storage
|
### Increasing Backup-Limit of Proxmox Storage
|
||||||
|
|
||||||
The default limit for backup is 1.
|
The default limit for backup is 1.
|
||||||
This is a bit too low.
|
This is a bit too low.
|
||||||
@@ -88,7 +181,7 @@ your liking.
|
|||||||
|
|
||||||
This section addresses various errors that can happen when using Proxmox.
|
This section addresses various errors that can happen when using Proxmox.
|
||||||
|
|
||||||
### No internet after mainboard swap
|
### No Internet After Mainboard Swap
|
||||||
|
|
||||||
If you change the mainboard of your proxmox-virtual-environment it is possible,
|
If you change the mainboard of your proxmox-virtual-environment it is possible,
|
||||||
that the NIC changes.
|
that the NIC changes.
|
||||||
|
|||||||
@@ -38,7 +38,8 @@ This is also described in the
|
|||||||
|
|
||||||
A simple way to achieve this in Qt is the installation of
|
A simple way to achieve this in Qt is the installation of
|
||||||
[adwaita-qt6](https://github.com/FedoraQt/adwaita-qt) which is also available as an
|
[adwaita-qt6](https://github.com/FedoraQt/adwaita-qt) which is also available as an
|
||||||
[AUR](/wiki/linux/package_manager.md#installing-an-aur-program-with-a-specific-version) package.
|
[AUR](/wiki/linux/package_manager/pacman_and_aur.md#installing-an-aur-program-with-a-specific-version)
|
||||||
|
package.
|
||||||
After the installation it can be selected by `qt6ct` as described in the
|
After the installation it can be selected by `qt6ct` as described in the
|
||||||
[configuration section](#configuration).
|
[configuration section](#configuration).
|
||||||
|
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ This section is based on an
|
|||||||
To fix it downgrade the packages `v4l2loopback-dkms` and `v4l2loopback-utils` to the last working
|
To fix it downgrade the packages `v4l2loopback-dkms` and `v4l2loopback-utils` to the last working
|
||||||
version.
|
version.
|
||||||
For [Arch Linux](/wiki/linux/arch-linux.md) this can be achieved by using
|
For [Arch Linux](/wiki/linux/arch-linux.md) this can be achieved by using
|
||||||
[Downgrade](/wiki/linux/package_manager.md#downgrading-packages).
|
[Downgrade](/wiki/linux/package_manager/pacman_and_aur.md#downgrading-packages).
|
||||||
|
|
||||||
### `Error! Bad return status for module build on kernel`
|
### `Error! Bad return status for module build on kernel`
|
||||||
|
|
||||||
@@ -100,4 +100,4 @@ When updating the `v4l2loopback` package this error can occur after the creation
|
|||||||
[initramfs](/wiki/linux/mkinitcpio.md).
|
[initramfs](/wiki/linux/mkinitcpio.md).
|
||||||
This may point to an incompatibility of the package and kernel version which can only but easily
|
This may point to an incompatibility of the package and kernel version which can only but easily
|
||||||
and temporarily be fixed by downgrading the package as described in
|
and temporarily be fixed by downgrading the package as described in
|
||||||
[the corresponding package manager section](/wiki/linux/package_manager.md#downgrading-packages).
|
[the corresponding package manager entry](/wiki/linux/package_manager/pacman_and_aur.md#downgrading-packages).
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ project is now unmaintained.
|
|||||||
An alternative to using this project is
|
An alternative to using this project is
|
||||||
[Überzug++](https://github.com/jstkdng/ueberzugpp) that can be used as a drop-in
|
[Überzug++](https://github.com/jstkdng/ueberzugpp) that can be used as a drop-in
|
||||||
alternative.
|
alternative.
|
||||||
It can be installed by the
|
On [Arch Linux](/wiki/linux/arch-linux.md) it can be installed by the
|
||||||
[Arch User Repository package `ueberzugpp`](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay).
|
[Arch User Repository](/wiki/linux/package_manager/pacman_and_aur.md) package `ueberzugpp`.
|
||||||
After that you need to add 2 files to your path which can be found on
|
After that you need to add 2 files to your path which can be found on
|
||||||
[thimc' Repository](https://github.com/thimc/vifmimg):
|
[thimc' Repository](https://github.com/thimc/vifmimg):
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user