Полное удаление платформы 1С, сервера и PostgreSQL из Linux
Содержание
Чтобы удалить 1С:Предприятие с Linux, остановите службу сервера srv1cv8, запустите uninstaller-full из каталога версии в /opt/1cv8/x86_64/ (платформа 8.3.20 и новее) или удалите пакеты 1c-enterprise* через apt/dnf (старые сборки). Затем вручную уберите остатки: каталог кластера в домашней папке пользователя usr1cv8, кэш клиента в ~/.1cv8 и ~/.1C, ярлыки, строки модуля веб-публикации в Apache.
Реестра, как в Windows, в Linux нет. Его роль играют конфигурационные файлы, юниты systemd и ярлыки .desktop. Именно их чаще всего забывают, и после «удаления» служба продолжает висеть в списке, а Apache перестаёт запускаться.
1. Что сохранить и как остановить службы перед удалением
Начните с инвентаризации. На одном сервере часто стоят две-три версии платформы рядом, и удалять нужно не всё.
ls /opt/1cv8/x86_64/ # версии, поставленные единым установщиком
ls /opt/1C/v8.3/x86_64/ 2>/dev/null # каталог старых пакетных установок
dpkg -l | grep -i 1c-enterprise # Debian, Ubuntu, Astra
rpm -qa | grep -i 1c-enterprise # RHEL, РЕД ОС, ALT
systemctl list-units --all | grep -i -E '1c|srv1cv8|ras'
Перед удалением скопируйте в безопасное место:
- 🔑 файлы программных лицензий из
/var/1C/licenses/— без них после переустановки придётся активировать лицензию заново, а пин-коды у комплекта ограничены; - 🗂 каталог кластера
/home/usr1cv8/.1cv8/1C/1cv8/— там список кластеров, информационных баз и их настройки (подкаталогreg_1541); - 💾 выгрузки баз: файловые базы — как есть, клиент-серверные — дампом СУБД или
.dtчерез конфигуратор; - 📄 настройки из
/opt/1cv8/conf/(conf.cfg,logcfg.xml), если вы их правили.
Остановка службы сервера 1С обрывает сеансы всех пользователей, фоновые и регламентные задания. Делайте это вне рабочего времени и предупредите людей заранее. Несохранённые документы в открытых сеансах пропадут.
Остановка службы для платформы 8.3.20 и новее (юнит-шаблон с версией в имени):
sudo systemctl stop srv1cv8-8.3.24.1548@default
sudo systemctl disable srv1cv8-8.3.24.1548@default
Номер версии подставьте свой — его видно в выводе systemctl list-units. Если сервер администрирования ras запускали как службу, остановите и отключите её тем же способом.
Для старых установок со скриптом в /etc/init.d:
sudo /etc/init.d/srv1cv83 stop
sudo update-rc.d -f srv1cv83 remove # Debian/Ubuntu
sudo chkconfig --del srv1cv83 # RHEL-семейство
Убедитесь, что процессы действительно завершились:
ps aux | grep -E 'ragent|rmngr|rphost|ras' | grep -v grep
Пустой вывод — можно удалять. Если rphost висит дольше минуты, завершите его через sudo kill <PID>, но только после того, как служба остановлена.
2. Как удалить сервер 1С:Предприятие
Способ зависит от того, как ставили платформу. Посмотрите на результат команд из первого раздела.
| Как ставили | Где лежит | Чем удалять |
|---|---|---|
Единый установщик setup-full-…run (8.3.20+) | /opt/1cv8/x86_64/<версия>/ | uninstaller-full в каталоге версии |
Пакеты .deb | /opt/1cv8/ или /opt/1C/v8.3/ | apt purge |
Пакеты .rpm | то же | dnf remove / yum remove |
Платформа 8.3.20 и новее
В каталоге каждой версии лежит деинсталлятор. Он удаляет только эту версию, соседние не трогает:
cd /opt/1cv8/x86_64/8.3.24.1548/
sudo ./uninstaller-full
Для удалённой консоли без графики добавьте ключ --mode unattended. Если деинсталлятора в каталоге нет (каталог копировали вручную или установка прервалась), остановите службу и удалите каталог версии целиком — пакетный менеджер о таких файлах не знает.
После этого уберите оставшийся юнит systemd. При установке его подключают командой systemctl link, и ссылка остаётся в /etc/systemd/system/:
ls -l /etc/systemd/system/ | grep -i -E 'srv1cv8|ras'
sudo rm /etc/systemd/system/srv1cv8-8.3.24.1548@.service # если ссылка осталась
sudo systemctl daemon-reload
sudo systemctl reset-failed
Пакетная установка (до 8.3.20)
Сначала посмотрите точные имена пакетов. Удаляйте по маске, но с проверкой списка:
# Debian, Ubuntu, Astra Linux
sudo apt purge '1c-enterprise*'
# RHEL, РЕД ОС, CentOS
sudo dnf remove '1c-enterprise*'
purge в отличие от remove стирает и конфигурационные файлы пакетов. Перед подтверждением прочитайте список: туда не должны попасть посторонние пакеты.
Если нужно убрать одну старую версию из нескольких, указывайте номер в маске: '1c-enterprise-8.3.18.1483-*'. Так рабочая версия останется на месте.
3. Удаление клиента 1С и общих компонентов
На рабочих станциях стоит тонкий или толстый клиент. При едином установщике он удаляется тем же uninstaller-full — если на машине только клиент, команда из раздела 2 подойдёт без изменений.
У пакетной установки клиент и общие компоненты — отдельные пакеты: common, client, server, ws (модуль веб-сервера), crs (сервер хранилища) и языковые -nls. Маска 1c-enterprise* захватывает их все.
Чего пакетный менеджер не удаляет никогда — данных в домашних каталогах пользователей. У каждого, кто запускал 1С на этой машине:
- 📁
~/.1cv8/— кэш конфигураций и пользовательские настройки форм; - 📁
~/.1C/1cestart/— список базibases.v8iи настройки окна запуска1cestart.cfg; - 📁
~/.local/share/applications/— личные ярлыки, если их создавали.
rm -rf ~/.1cv8 ~/.1C
Файловые информационные базы деинсталлятор не трогает. Каталоги с файлом 1Cv8.1CD остаются там, где лежали. Если их нужно убрать — удаляйте вручную, предварительно убедившись, что копия есть.
Если на машине использовался аппаратный ключ HASP, драйвер стоит отдельным пакетом (обычно aksusbd или старый haspd). Удаляйте его, только если других программ под ключ на этой машине нет.
4. Удаление PostgreSQL, если он ставился под 1С
СУБД удаляют не всегда. Если на сервере остаются другие базы, PostgreSQL не трогайте — сносите только базы 1С.
Удалить отдельную базу 1С:
sudo -u postgres psql -c "DROP DATABASE buh_test;"
Перед этим сделайте дамп:
sudo -u postgres pg_dump -Fc buh_test > /backup/buh_test.dump
DROP DATABASE удаляет базу без корзины. Перед командой проверьте имя через \l в psql и наличие дампа.
Если СУБД ставилась только под 1С, сначала узнайте, какая сборка установлена. Для 1С обычно берут Postgres Pro для 1С или сборку PostgreSQL с патчами 1С:
dpkg -l | grep -i -E 'postgres|pgpro'
rpm -qa | grep -i -E 'postgres|pgpro'
Удаление (имена пакетов возьмите из вывода выше):
sudo systemctl stop postgresql
sudo apt purge 'postgrespro-1c-*' # для Postgres Pro для 1С
sudo apt purge 'postgresql-*' # для обычного PostgreSQL
Каталог данных пакет при удалении не стирает — это защита от случайной потери баз. Где он находится:
| Сборка | Каталог данных (по умолчанию) |
|---|---|
| PostgreSQL (Debian/Ubuntu) | /var/lib/postgresql/<версия>/main |
| Postgres Pro для 1С | /var/lib/pgpro/1c-<версия>/data |
| PostgreSQL (RHEL-семейство) | /var/lib/pgsql/<версия>/data |
Удалите его вручную, только когда уверены, что дампы есть и проверены восстановлением. Заодно уберите пользователя postgres, если он больше не нужен: sudo userdel postgres.
5. Ручная очистка: что 1С оставляет в системе вместо реестра
Здесь собраны места, которые деинсталлятор и пакетный менеджер не чистят. Проходите по списку сверху вниз.
Каталоги платформы
sudo rm -rf /opt/1cv8 # только если удалены ВСЕ версии
sudo rm -rf /opt/1C # остаток пакетных установок
Если хоть одна версия остаётся, удаляйте только её подкаталог в /opt/1cv8/x86_64/. Каталог /opt/1cv8/conf/ общий для всех версий.
Данные кластера и служебный пользователь
Сервер работает от пользователя usr1cv8 из группы grp1cv8. В его домашнем каталоге хранится реестр кластера — список баз и настройки рабочих серверов.
sudo rm -rf /home/usr1cv8/.1cv8
sudo userdel -r usr1cv8
sudo groupdel grp1cv8
userdel -r удаляет и домашний каталог. Если кластер настраивали с нестандартным каталогом (параметр -d при запуске ragent), проверьте и его.
Лицензии
ls /var/1C/licenses/
Файлы .lic удаляйте, только если лицензия уже перенесена или сервер списывается. Скопированная ранее папка пригодится при восстановлении на этом же железе.
Ярлыки и пункты меню
ls /usr/share/applications/ | grep -i 1c
sudo rm /usr/share/applications/1cv8*.desktop # проверьте список перед удалением
Веб-публикация в Apache
Ключевая ловушка. Если базы публиковали на веб-сервере, в конфигурации Apache осталась строка подключения модуля wsap24.so из каталога удалённой версии. После удаления платформы Apache при перезапуске упадёт с ошибкой загрузки модуля.
grep -rn 'wsap' /etc/apache2/ /etc/httpd/ 2>/dev/null
Удалите найденные строки LoadModule _1cws_module … и блоки <Directory>/<Location> публикаций, затем проверьте конфигурацию и перезапустите:
sudo apachectl configtest
sudo systemctl restart apache2 # или httpd на RHEL
Каталоги публикаций (обычно в /var/www/) с файлами default.vrd удалите вручную.
Правила файрвола
Под кластер открывали порты 1540, 1541 и диапазон рабочих процессов (по умолчанию 1560–1591), а для ras — 1545. Закройте их:
sudo ufw status numbered # найдите и удалите правила 1С
sudo firewall-cmd --list-ports # для firewalld
Зависимости
При установке 1С часто ставили шрифты, библиотеки libwebkit, libgsf, ImageMagick. Команда sudo apt autoremove уберёт то, что больше ни от чего не зависит. Список читайте внимательно: на рабочей станции часть этих пакетов нужна другим программам.
6. Проверка: удалена ли 1С полностью
Пройдите четыре проверки. Каждая должна дать пустой вывод.
- Пакеты.
dpkg -l | grep -i 1c-enterpriseилиrpm -qa | grep -i 1c-enterprise. Строки со статусомrcвdpkgозначают, что остались конфиги — добейте ихapt purge. - Службы.
systemctl list-unit-files | grep -i -E 'srv1cv8|ras'. - Порты.
ss -tlnp | grep -E ':154[0-9]|:15[6-9][0-9]'— никто не должен слушать порты кластера. - Файлы.
sudo find / -xdev \( -iname '*1cv8*' -o -iname 'srv1cv8*' \) 2>/dev/null— покажет забытые каталоги и юниты.
Если find нашёл файлы в домашних каталогах других пользователей — это кэш клиента, его можно удалить. Находки в каталогах с файловыми базами (1Cv8.1CD) не трогайте, пока не решите судьбу данных.
Частые вопросы
Можно ли удалить старую версию платформы, не останавливая рабочий кластер?
Нужно ли удалять 1С перед обновлением платформы?
Удалятся ли информационные базы вместе с платформой?
Сохранится ли программная лицензия после переустановки 1С на том же сервере?
/var/1C/licenses и не менять оборудование. Лицензия привязана к параметрам компьютера, а не к версии платформы.Что делать, если uninstaller-full завершился с ошибкой?
/opt/1cv8/x86_64/ вручную и пройдите очистку из раздела про остатки. Пакетный менеджер такие файлы не отслеживает, конфликтов не будет.