Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 51 additions & 24 deletions docs/apt-download-deb.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,66 @@
# Install Percona Server for MySQL {{vers}} using downloaded DEB packages
# Install Percona Server for MySQL 8.4 using DEB packages

Download the packages from [Percona Product Downloads](https://www.percona.com/downloads). If needed, [Instructions for the Percona Product Download](download-instructions.md) are available.
Percona distributes DEB packages in tar bundles that contain multiple related packages. Two bundle types are available:

The following example downloads Percona Server for MySQL {{release}} release packages for Ubuntu 22.04:
* Full bundle: Contains all Percona Server packages including server, client, test packages, debug symbols, and source files

* Minimal bundle: Contains only the essential server and client packages needed for basic operation

Choose the bundle type based on your requirements. Download the bundle to access the components you need, then extract and install the individual DEB files using your system package manager.

## When to use this installation method

Skills needed: Basic system administration, command line familiarity

Advantages:

* Provides precise version control over installed packages

* Works in offline environments without internet access

* Allows installation before packages appear in standard repositories

* Enables administrators to validate packages before deployment

Disadvantages:

* Requires manual download and extraction steps

* Does not receive automatic updates through the package manager

* Users must manually track new releases and security updates

* Takes more time than repository-based installation

Download the bundle from Percona Product Downloads. Review the Instructions for the Percona Product Download if you need assistance.

This example downloads Percona Server for MySQL {{release}} release packages for Ubuntu 22.04:

```{.bash data-prompt="$"}
$ wget https://downloads.percona.com/downloads/Percona-Server-8.4/Percona-Server-8.4.0-1/binary/debian/jammy/x86_64/Percona-Server-8.4.0-1-r238b3c02-jammy-x86_64-bundle.tar
$ wget https://downloads.percona.com/downloads/Percona-Server-8.4/Percona-Server-{{release}}/binary/debian/jammy/x86_64/Percona-Server-{{release}}-[revision hash]-jammy-x86_64-bundle.tar
```

Unpack the download to get the packages:
Extract the bundle to access the individual packages:

```{.bash data-prompt="$"}
$ tar xvf Percona-Server-8.4.0-1-r71449379-buster-x86_64-bundle.tar
$ tar xvf Percona-Server-{{release}}-[revision hash]-jammy-x86_64-bundle.tar
```
??? example "Expected output"

```text
libperconaserverclient21_{{release}}-1.buster_amd64.deb
libperconaserverclient21-dev_{{release}}-1.buster_amd64.deb
percona-mysql-router_{{release}}-1.buster_amd64.deb
percona-server-client_{{release}}-1.buster_amd64.deb
percona-server-common_{{release}}-1.buster_amd64.deb
percona-server-dbg_{{release}}-1.buster_amd64.deb
percona-server-rocksdb_{{release}}-1.buster_amd64.deb
percona-server-server_{{release}}-1.buster_amd64.deb
percona-server-source_{{release}}-1.buster_amd64.deb
percona-server-test_{{release}}-1.buster_amd64.deb

??? example "Expected output for a full tar extraction"

```{.text .no-copy}
percona-server-server_{{release}}-1.jammy_amd64.deb
percona-server-client_{{release}}-1.jammy_amd64.deb
percona-server-common_{{release}}-1.jammy_amd64.deb
percona-server-dbg_{{release}}-1.jammy_amd64.deb
percona-server-source_{{release}}-1.jammy_amd64.deb
percona-server-test_{{release}}-1.jammy_amd64.deb
```

Install Percona Server for MySQL using `dpkg`. Run this command as root or use the sudo command:
Install Percona Server for MySQL using the system package manager. Run this command as root or use sudo:

```{.bash data-prompt="$"}
$ sudo dpkg -i *.deb
$ sudo apt install ./*.deb
```

!!! warning

When installing packages manually like this, you’ll need to resolve all the dependencies and install missing packages yourself. The following packages will need to be installed before you can manually install Percona Server: `mysql-common`, `libjemalloc1`, `libaio1`, and `libmecab2`.
The package manager resolves dependencies automatically and installs all required components from the extracted files.
49 changes: 39 additions & 10 deletions docs/apt-pinning.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,44 @@
# Apt pinning the Percona Server for MySQL {{vers}} packages

Pinning allows you to stay on a release and get packages from a different version. In some cases, you can pin selected packages and avoid accidentally upgrading all the packages.
Apt pinning helps you control which version of a package is installed from different repositories. This is useful when you want to stay on a specific release such as Percona Server for MySQL 8.4 and avoid automatic upgrades from other sources.

The pinning takes place in the `preference` file. To pin a package, set the `Pin-Priority` to higher numbers.

Make a new file `/etc/apt/preferences.d/00percona.pref`. For example, add the following to the `preference` file:
To pin the Percona Server for MySQL 8.4 packages, follow these steps:
{.power-number}

```text
Package:
Pin: release o=Percona Development Team
Pin-Priority: 1001
```
1. Create a preferences file in `/etc/apt/preferences.d/` named `00percona.pref`:

For more information about the pinning, you can check the official [debian wiki](https://wiki.debian.org/AptConfiguration?action=show&redirect=AptPreferences).
```{.bash data-prompt="$"}
$ sudo nano /etc/apt/preferences.d/00percona.pref
```

2. Add the pinning configuration content to the file:

```ini
Package: percona-server-server
Pin: release o=Percona Development Team,a=stable
Pin-Priority: 1001
```

* The `Package` field specifies the exact name of the package.
* The `Pin` field identifies the origin of the package, which is the Percona repository.
* The `Pin-Priority` field sets the priority level. A value above 1000 ensures this version is preferred over others.

Save and close the file.

3. Update package lists to refresh your package sources:

```{.bash data-prompt="$"}
$ sudo apt update
```

4. Install Percona Server for MySQL 8.4 using the following command:

```{.bash data-prompt="$"}
$ sudo apt install percona-server-server
```

Your system prioritizes the version from the Percona repository according to your pinning settings.

## Learn more

For additional details, visit the [debian wiki](https://wiki.debian.org/AptConfiguration?action=show&redirect=AptPreferences).
43 changes: 20 additions & 23 deletions docs/apt-repo.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
# Use an APT repository to install Percona Server for MySQL {{vers}}
# Install Percona Server for MySQL {{vers}} Using APT on Debian/Ubuntu

Ready-to-use packages are available from the Percona Server for MySQL software repositories and the [Percona downloads] page.

Specific information on the supported platforms, products, and versions is described in [Percona Software and Platform Lifecycle](https://www.percona.com/services/policies/percona-software-platform-lifecycle#mysql).
Percona provides ready-to-use packages for Percona Server for MySQL 8.4 through its APT repositories, offering seamless updates and dependency resolution for Debian-based systems.

If you need help with installation or configuration, [Percona Support](https://www.percona.com/services/support) is available to assist you.

Specific information on the supported platforms, products, and versions is available in [Percona Software and Platform Lifecycle](https://www.percona.com/services/policies/percona-software-platform-lifecycle#mysql).

We gather [telemetry data](telemetry.md) in the Percona packages and Docker images to improve product quality.

--8<-- "percona-release.md"

We gather [Telemetry data] in the Percona packages and Docker images.

--8<--- "get-help-snip.md"

## ARM support

The DEB builds for Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04, DEBIAN 11, and DEBIAN 12 contain ARM packages with the `aarch64.rpm` extension. This means that Percona Server for MySQL is available for users on ARM-based systems.
Percona Server for MySQL 8.4 includes native support for the ARM64 (aarch64) architecture in its DEB packages. These packages are available for Ubuntu starting with version 20.04 and for Debian starting with version 11.


## Unattended installations

Expand All @@ -24,47 +28,40 @@ The DEB builds for Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04, DEBIAN 11, and DEBI
To install Percona Server for MySQL using APT, do the following steps:
{.power-number}

1. Update the package repositories:
1. Update the package index and install `curl`:

```{.bash data-prompt="$"}
$ sudo apt update
$ sudo apt update && sudo apt install curl
```

2. Install the `curl` download utility if needed:

```{.bash data-prompt="$"}
$ sudo apt install curl
```

3. Download the `percona-release` repository package:
2. Download the `percona-release` repository package:

```{.bash data-prompt="$"}
$ curl -O https://repo.percona.com/apt/percona-release_latest.generic_all.deb
```

4. Install the downloaded package with `apt` as root or with sudo:
3. Install the package with `apt` as root or with sudo:

```{.bash data-prompt="$"}
$ sudo apt install gnupg2 lsb-release ./percona-release_latest.generic_all.deb
```


5. Refresh the local cache to update the package information:
4. Refresh the package index:

```{.bash data-prompt="$"}
$ sudo apt update
```

6. Use `percona-release` to set up the repository for the Percona Server for MySQL {{vers}} version:
5. Enable the Percona Server for MySQL {{vers}} repository:

```{.bash data-prompt="$"}
$ sudo percona-release enable-only {{pkg}} release
$ sudo percona-release enable tools release
```

7. You can check the repository setup for the Percona original release list in `/etc/apt/sources.list.d/percona-original-release.list`.
6. [Optional] You can check the repository setup for the Percona original release list in ```cat /etc/apt/sources.list.d/percona-original-release.list```.

8. Install the server package with the `percona-release` command:
8. Install the server:

```{.bash data-prompt="$"}
$ sudo apt install percona-server-server
Expand All @@ -74,7 +71,7 @@ See [Configuring Percona repositories with `percona-release`](https://docs.perco

--8<--- "storage-engines.md"

Percona Server for MySQL includes user-defined functions (UDFs) from [Percona Toolkit](https://docs.percona.com/percona-toolkit/). These UDFs, `fnv_64`, `fnv1a_64`, `murmur_hash`, offer faster checksum calculations compared to standard methods. For detailed information about these user-defined functions, see [Percona Toolkit UDF functions](udf-percona-toolkit.md).
Percona Server for MySQL includes user-defined functions (UDFs) from [Percona Toolkit](https://docs.percona.com/percona-toolkit/) for faster checksum calculations. Learn more in [Percona Toolkit UDF functions](udf-percona-toolkit.md).

Once the installation completes, execute the following command to install these functions:

Expand All @@ -95,4 +92,4 @@ These builds should not be run in production. This build may not contain all of

[Percona downloads]: https://www.percona.com/downloads/Percona-Server-{{vers}}/

[Telemetry data]: telemetry.md

68 changes: 51 additions & 17 deletions docs/build-apt-packages.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,61 @@
# Build APT packages
# Build DEB packages from source

If you wish to build your own Debian/Ubuntu (dpkg) packages of Percona Server for MySQL,
you first need to start with a source tarball, either from the Percona
website or by generating your own by following the instructions above ([Installing Percona Server for MySQL from the Git Source Tree](source-tarball.md)).
Build custom DEB packages when you need specific configuration options, patches, or want to create packages for distribution. This process compiles Percona Server from source code and creates installable DEB files.

## When to build from source

Advantages:

Enables custom compilation flags and configuration options

* Allows integration of custom patches or modifications

* Creates packages tailored for specific hardware or requirements

* Provides control over included features and dependencies

Disadvantages:

* Requires significant build time and system resources

* Demands expertise in Debian packaging and build tools

* Creates maintenance overhead for updates and security patches

* May introduce stability risks from custom modifications

## Prerequisites

Skills needed: Software development, packaging knowledge, build tools

Install the required build tools and dependencies:

```{.bash data-prompt="$"}
$ sudo apt install build-essential devscripts debhelper sbuild
$ sudo apt build-dep percona-server-server
```

## Build process

Start with a source tarball from the Percona website or generate your own following the Git source tree installation instructions.

Extract the source tarball:

```{.bash data-prompt="$"}
$ tar xfz Percona-Server-{{release}}-Linux.x86_64.ssl102.tar.gz
$ tar xfz Percona-Server-{{release}}-Linux.x86_64.tar.gz
$ cd Percona-Server-{{release}}
```

Copy the Debian packaging in the directory that Debian expects it to be in:
Copy the Debian packaging files to the expected directory structure:

```{.bash data-prompt="$"}
$ cp -ap build-ps/debian debian
```
<!-- Do we need this part --->
Update the changelog for your distribution (here we update for the unstable
distribution - sid), setting the version number appropriately. The trailing one
in the version number is the revision of the Debian packaging.

Update the changelog for your target distribution. This example updates for the unstable distribution (sid) and sets the version number. The trailing number represents the Debian packaging revision:

```{.bash data-prompt="$"}
$ dch -D unstable --force-distribution -v "8.0.13-3-1" "Update to 8.0.13-3"
$ dch -D unstable --force-distribution -v "{{release}}-1" "Update to {{release}}"
```

Build the Debian source package:
Expand All @@ -31,15 +64,16 @@ Build the Debian source package:
$ dpkg-buildpackage -S
```

Use sbuild to build the binary package in a chroot:
Use sbuild to create the binary package in a clean chroot environment:

```{.bash data-prompt="$"}
$ sbuild -d sid percona-server-{{vers}}_{{release}}.dsc
$ sbuild -d sid percona-server-8.4_{{release}}.dsc
```

You can give different distribution options to `dch` and `sbuild` to build binary
packages for all Debian and Ubuntu releases.

!!! note

[PAM Authentication Plugin](pam-plugin.md) is not built with the server by default. In order to build the Percona Server for MySQL with PAM plugin, an additional option `-DWITH_PAM=ON` should be used.
The PAM Authentication Plugin does not build with the server by default. Add the `-DWITH_PAM=ON` option to build Percona Server for MySQL with PAM plugin support.

## Distribution compatibility

Pass different distribution options to `dch` and `sbuild` commands to build binary packages for various Debian and Ubuntu releases. Replace `sid` with your target distribution codename (such as `bookworm`, `jammy`, or `focal`).
Loading