mirror of https://github.com/zulip/zulip.git
install: Support Debian 12.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
parent
16dedb08fd
commit
12310189ed
|
@ -144,6 +144,11 @@ jobs:
|
||||||
os: bullseye
|
os: bullseye
|
||||||
extra-args: --test-custom-db
|
extra-args: --test-custom-db
|
||||||
|
|
||||||
|
- docker_image: zulip/ci:bookworm
|
||||||
|
name: Debian 12 production install
|
||||||
|
os: bookworm
|
||||||
|
extra-args: ""
|
||||||
|
|
||||||
name: ${{ matrix.name }}
|
name: ${{ matrix.name }}
|
||||||
container:
|
container:
|
||||||
image: ${{ matrix.docker_image }}
|
image: ${{ matrix.docker_image }}
|
||||||
|
|
|
@ -48,6 +48,12 @@ jobs:
|
||||||
os: jammy
|
os: jammy
|
||||||
include_documentation_tests: false
|
include_documentation_tests: false
|
||||||
include_frontend_tests: false
|
include_frontend_tests: false
|
||||||
|
# Debian 12 ships with Python 3.11.2.
|
||||||
|
- docker_image: zulip/ci:bookworm
|
||||||
|
name: Debian 12 (Python 3.11, backend)
|
||||||
|
os: bookworm
|
||||||
|
include_documentation_tests: false
|
||||||
|
include_frontend_tests: false
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
name: ${{ matrix.name }}
|
name: ${{ matrix.name }}
|
||||||
|
|
|
@ -20,7 +20,7 @@ host by following these instructions. Currently supported platforms
|
||||||
are:
|
are:
|
||||||
|
|
||||||
- Ubuntu 20.04, 22.04
|
- Ubuntu 20.04, 22.04
|
||||||
- Debian 11
|
- Debian 11, 12
|
||||||
- CentOS 7 (beta)
|
- CentOS 7 (beta)
|
||||||
- Fedora 33 and 34 (beta)
|
- Fedora 33 and 34 (beta)
|
||||||
- RHEL 7 (beta)
|
- RHEL 7 (beta)
|
||||||
|
|
|
@ -51,7 +51,7 @@ a proxy to access the internet.)
|
||||||
[GitHub account](#step-0-set-up-git--github).
|
[GitHub account](#step-0-set-up-git--github).
|
||||||
- **macOS**: macOS (10.11 El Capitan or newer recommended)
|
- **macOS**: macOS (10.11 El Capitan or newer recommended)
|
||||||
- **Ubuntu LTS**: 20.04 or 22.04
|
- **Ubuntu LTS**: 20.04 or 22.04
|
||||||
- **Debian**: 11
|
- **Debian**: 11 or 12
|
||||||
- **Fedora**: tested for 36
|
- **Fedora**: tested for 36
|
||||||
- **Windows**: Windows 64-bit (Win 10 recommended), hardware
|
- **Windows**: Windows 64-bit (Win 10 recommended), hardware
|
||||||
virtualization enabled (VT-x or AMD-V), administrator access.
|
virtualization enabled (VT-x or AMD-V), administrator access.
|
||||||
|
|
|
@ -7,6 +7,7 @@ To run a Zulip server, you will need:
|
||||||
- Ubuntu 20.04
|
- Ubuntu 20.04
|
||||||
- Ubuntu 22.04
|
- Ubuntu 22.04
|
||||||
- Debian 11
|
- Debian 11
|
||||||
|
- Debian 12
|
||||||
- A supported CPU architecture:
|
- A supported CPU architecture:
|
||||||
- x86-64
|
- x86-64
|
||||||
- aarch64
|
- aarch64
|
||||||
|
@ -36,7 +37,7 @@ on issues you'll encounter](install-existing-server.md).
|
||||||
|
|
||||||
#### Operating system
|
#### Operating system
|
||||||
|
|
||||||
Ubuntu 20.04, Ubuntu 22.04, and Debian 11
|
Ubuntu 20.04, Ubuntu 22.04, Debian 11, and Debian 12
|
||||||
are supported for running Zulip in production. You can also
|
are supported for running Zulip in production. You can also
|
||||||
run Zulip on other platforms that support Docker using
|
run Zulip on other platforms that support Docker using
|
||||||
[docker-zulip][docker-zulip-homepage].
|
[docker-zulip][docker-zulip-homepage].
|
||||||
|
|
|
@ -484,6 +484,52 @@ instructions for other supported platforms.
|
||||||
18.04](#upgrading-from-ubuntu-1604-xenial-to-1804-bionic), so
|
18.04](#upgrading-from-ubuntu-1604-xenial-to-1804-bionic), so
|
||||||
that you are running a supported operating system.
|
that you are running a supported operating system.
|
||||||
|
|
||||||
|
### Upgrading from Debian 11 to 12
|
||||||
|
|
||||||
|
1. Upgrade your server to the latest `7.x` release.
|
||||||
|
|
||||||
|
2. As the Zulip user, stop the Zulip server and run the following
|
||||||
|
to back up the system:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/home/zulip/deployments/current/scripts/stop-server
|
||||||
|
/home/zulip/deployments/current/manage.py backup --output=/home/zulip/release-upgrade.backup.tar.gz
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Follow [Debian's instructions to upgrade the OS][bookworm-upgrade].
|
||||||
|
|
||||||
|
[bookworm-upgrade]: https://www.debian.org/releases/bookworm/amd64/release-notes/ch-upgrading.html
|
||||||
|
|
||||||
|
When prompted for you how to upgrade configuration
|
||||||
|
files for services that Zulip manages like Redis, PostgreSQL,
|
||||||
|
nginx, and memcached, the best choice is `N` to keep the
|
||||||
|
currently installed version. But it's not important; the next
|
||||||
|
step will re-install Zulip's configuration in any case.
|
||||||
|
|
||||||
|
4. As root, run the following steps to regenerate configurations
|
||||||
|
for services used by Zulip:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
apt remove upstart -y
|
||||||
|
/home/zulip/deployments/current/scripts/zulip-puppet-apply -f
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Reinstall the current version of Zulip, which among other things
|
||||||
|
will recompile Zulip's Python module dependencies for your new
|
||||||
|
version of Python:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
rm -rf /srv/zulip-venv-cache/*
|
||||||
|
/home/zulip/deployments/current/scripts/lib/upgrade-zulip-stage-2 \
|
||||||
|
/home/zulip/deployments/current/ --ignore-static-assets --audit-fts-indexes
|
||||||
|
```
|
||||||
|
|
||||||
|
This will finish by restarting your Zulip server; you should now
|
||||||
|
be able to navigate to its URL and confirm everything is working
|
||||||
|
correctly.
|
||||||
|
|
||||||
|
6. As an additional step, you can also [upgrade the PostgreSQL version](#upgrading-postgresql).
|
||||||
|
|
||||||
### Upgrading from Debian 10 to 11
|
### Upgrading from Debian 10 to 11
|
||||||
|
|
||||||
1. Upgrade your server to the latest `5.x` release. You can only
|
1. Upgrade your server to the latest `5.x` release. You can only
|
||||||
|
|
|
@ -219,7 +219,7 @@ if [ -f /etc/os-release ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "$os_id $os_version_id" in
|
case "$os_id $os_version_id" in
|
||||||
'debian 11' | 'ubuntu 20.04' | 'ubuntu 22.04') ;;
|
'debian 11' | 'debian 12' | 'ubuntu 20.04' | 'ubuntu 22.04') ;;
|
||||||
*)
|
*)
|
||||||
set +x
|
set +x
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
@ -228,6 +228,7 @@ Unsupported OS release: $os_id $os_version_id
|
||||||
|
|
||||||
Zulip in production is supported only on:
|
Zulip in production is supported only on:
|
||||||
- Debian 11
|
- Debian 11
|
||||||
|
- Debian 12
|
||||||
- Ubuntu 20.04 LTS
|
- Ubuntu 20.04 LTS
|
||||||
- Ubuntu 22.04 LTS
|
- Ubuntu 22.04 LTS
|
||||||
|
|
||||||
|
|
|
@ -210,6 +210,7 @@ if os.path.exists("/etc/init.d/postgresql"):
|
||||||
if not postgresql_version:
|
if not postgresql_version:
|
||||||
default_postgresql_version = {
|
default_postgresql_version = {
|
||||||
("debian", "11"): "13",
|
("debian", "11"): "13",
|
||||||
|
("debian", "12"): "15",
|
||||||
("ubuntu", "20.04"): "12",
|
("ubuntu", "20.04"): "12",
|
||||||
("ubuntu", "22.04"): "14",
|
("ubuntu", "22.04"): "14",
|
||||||
("centos", "7"): "11",
|
("centos", "7"): "11",
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
deb http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main
|
||||||
|
deb-src http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main
|
|
@ -26,6 +26,10 @@ if [[ ! -e /usr/share/doc/groonga-apt-source/copyright ]]; then
|
||||||
read -r distribution
|
read -r distribution
|
||||||
read -r release
|
read -r release
|
||||||
} <<<"$os_info"
|
} <<<"$os_info"
|
||||||
|
if [ "$distribution" = debian ] && [ "$release" = bookworm ]; then
|
||||||
|
# PGroonga binaries are not yet provided for Debian 12.
|
||||||
|
exit
|
||||||
|
fi
|
||||||
groonga_apt_source_deb="groonga-apt-source-latest-$release.deb"
|
groonga_apt_source_deb="groonga-apt-source-latest-$release.deb"
|
||||||
groonga_apt_source_deb_sign="$groonga_apt_source_deb.asc.$pgroonga_apt_sign_key_fingerprint"
|
groonga_apt_source_deb_sign="$groonga_apt_source_deb.asc.$pgroonga_apt_sign_key_fingerprint"
|
||||||
curl -fLO --retry 3 "https://packages.groonga.org/$distribution/$groonga_apt_source_deb"
|
curl -fLO --retry 3 "https://packages.groonga.org/$distribution/$groonga_apt_source_deb"
|
||||||
|
|
|
@ -4,3 +4,4 @@ cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||||
docker build . --build-arg=BASE_IMAGE=ubuntu:20.04 --pull --tag=zulip/ci:focal
|
docker build . --build-arg=BASE_IMAGE=ubuntu:20.04 --pull --tag=zulip/ci:focal
|
||||||
docker build . --build-arg=BASE_IMAGE=ubuntu:22.04 --pull --tag=zulip/ci:jammy
|
docker build . --build-arg=BASE_IMAGE=ubuntu:22.04 --pull --tag=zulip/ci:jammy
|
||||||
docker build . --build-arg=BASE_IMAGE=debian:11 --pull --tag=zulip/ci:bullseye
|
docker build . --build-arg=BASE_IMAGE=debian:11 --pull --tag=zulip/ci:bullseye
|
||||||
|
docker build . --build-arg=BASE_IMAGE=debian:bookworm --pull --tag=zulip/ci:bookworm
|
||||||
|
|
|
@ -78,6 +78,8 @@ vendor = distro_info["ID"]
|
||||||
os_version = distro_info["VERSION_ID"]
|
os_version = distro_info["VERSION_ID"]
|
||||||
if vendor == "debian" and os_version == "11": # bullseye
|
if vendor == "debian" and os_version == "11": # bullseye
|
||||||
POSTGRESQL_VERSION = "13"
|
POSTGRESQL_VERSION = "13"
|
||||||
|
elif vendor == "debian" and os_version == "12": # bookworm
|
||||||
|
POSTGRESQL_VERSION = "15"
|
||||||
elif vendor == "ubuntu" and os_version == "20.04": # focal
|
elif vendor == "ubuntu" and os_version == "20.04": # focal
|
||||||
POSTGRESQL_VERSION = "12"
|
POSTGRESQL_VERSION = "12"
|
||||||
elif vendor == "ubuntu" and os_version == "21.10": # impish
|
elif vendor == "ubuntu" and os_version == "21.10": # impish
|
||||||
|
@ -159,7 +161,7 @@ COMMON_YUM_DEPENDENCIES = [
|
||||||
]
|
]
|
||||||
|
|
||||||
BUILD_PGROONGA_FROM_SOURCE = False
|
BUILD_PGROONGA_FROM_SOURCE = False
|
||||||
if vendor == "debian" and os_version in [] or vendor == "ubuntu" and os_version in []:
|
if vendor == "debian" and os_version in ["12"] or vendor == "ubuntu" and os_version in []:
|
||||||
# For platforms without a PGroonga release, we need to build it
|
# For platforms without a PGroonga release, we need to build it
|
||||||
# from source.
|
# from source.
|
||||||
BUILD_PGROONGA_FROM_SOURCE = True
|
BUILD_PGROONGA_FROM_SOURCE = True
|
||||||
|
@ -180,7 +182,7 @@ elif "debian" in os_families():
|
||||||
# additional dependency for postgresql-13-pgdg-pgroonga.
|
# additional dependency for postgresql-13-pgdg-pgroonga.
|
||||||
#
|
#
|
||||||
# See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895037
|
# See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895037
|
||||||
if vendor == "debian" and os_version == "11":
|
if vendor == "debian":
|
||||||
DEBIAN_DEPENDENCIES.remove("libappindicator1")
|
DEBIAN_DEPENDENCIES.remove("libappindicator1")
|
||||||
DEBIAN_DEPENDENCIES.append("libgroonga0")
|
DEBIAN_DEPENDENCIES.append("libgroonga0")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue