===== Upgrade von ejabberd 23.01 auf ejabberd 23.04 ===== ==== Voraussetzung ==== * Dieses Howto setzt [[de:ejabberd_installation|ejabberd Installation]] voraus. * Bei diesem Upgrade sind keine Konfigurationsanpassungen notwendig. ==== Einleitung ==== Die Installation neuerer Versionen ist wegen der neuen Verzeichnisstruktur sehr einfach durchzuführen. ==== Einrichtung ==== ejabberd stoppen: $ systemctl stop ejabberd.service Wir machen uns zu ejabberd um damit zu arbeiten: $ su - ejabberd ejabberd herunterladen und ausführbar machen: $ wget -O ejabberd-23.04-1-linux-x64.run https://www.process-one.net/downloads/downloads-action.php?file=/23.04/ejabberd-23.04-1-linux-x64.run $ chmod +x ejabberd-23.04-1-linux-x64.run Installation starten: $ ./ejabberd-23.04-1-linux-x64.run Running without superuser privileges (installer wasn't invoked with "sudo"), cannot perform system-wide installation this way. Continue anyway? (y/n) [n] y Install ejabberd below /home/ejabberd/opt? (y/n) [n] y The following installation paths will be used: - /home/ejabberd/opt/ejabberd-23.04 - /home/ejabberd/opt/ejabberd (existing files won't be modified) Install ejabberd 23.04 now? (y/n) [n] y Symbolischen Link anpassen: $ rm opt/ejd $ ln -s /home/ejabberd/opt/ejabberd-23.04 /home/ejabberd/opt/ejd Sofern du für die Datenbank MariaDB verwendest, sind einige Anpassungen notwendig. Kontrolliere bitte vorab, ob du das [[de:wechsel_von_mnesia_zu_mariadb|klassische]] oder das [[de:ejabberd_mit_mehreren_domains|neue]] MySQL Schema verwendest. Datei für den Import erstellen: === klassisches Schema: === $ jed update.sql folgende Zeilen einfügen: ALTER TABLE rosterusers DROP INDEX i_rosteru_username; ALTER TABLE sr_user DROP INDEX i_sr_user_jid; ALTER TABLE privacy_list DROP INDEX i_privacy_list_username; ALTER TABLE private_storage DROP INDEX i_private_storage_username; ALTER TABLE muc_online_users DROP INDEX i_muc_online_users_us; ALTER TABLE route DROP INDEX i_route_domain; ALTER TABLE mix_participant DROP INDEX i_mix_participant_chan_serv; ALTER TABLE mix_participant DROP INDEX i_mix_subscription_chan_serv_ud; ALTER TABLE mix_participant DROP INDEX i_mix_subscription_chan_serv; ALTER TABLE mix_pam DROP INDEX i_mix_pam_u; Die Änderungen mit [STRG] + [x] und [STRG] + [s] speichern und den Editor mit [STRG] + [x] und [STRG] + [c] verlassen. === oder neues Schema: === $ jed update.sql folgende Zeilen einfügen: ALTER TABLE rosterusers DROP INDEX i_rosteru_sh_username; ALTER TABLE sr_user DROP INDEX i_sr_user_sh_jid; ALTER TABLE privacy_list DROP INDEX i_privacy_list_sh_username; ALTER TABLE private_storage DROP INDEX i_private_storage_sh_username; ALTER TABLE muc_online_users DROP INDEX i_muc_online_users_us; ALTER TABLE route DROP INDEX i_route_domain; ALTER TABLE mix_participant DROP INDEX i_mix_participant_chan_serv; ALTER TABLE mix_participant DROP INDEX i_mix_subscription_chan_serv_ud; ALTER TABLE mix_participant DROP INDEX i_mix_subscription_chan_serv; ALTER TABLE mix_pam DROP INDEX i_mix_pam_us; CREATE INDEX i_push_session_sh_username_timestamp ON push_session (server_host, username(191), timestamp); Die Änderungen mit [STRG] + [x] und [STRG] + [s] speichern und den Editor mit [STRG] + [x] und [STRG] + [c] verlassen. Die Updatedate in deine Datenbank importieren: $ mysql -D ejabberd -u ejabberd -p < update.sql Enter password: Anschließend kann die Datei wieder gelöscht werden: $ rm update.sql Den Kontext von ejabberd verlassen und ejabberd wieder starten: $ exit $ systemctl start ejabberd.service