LINUX.ORG.RU

slackware un-doinst.sh


0

0

в слаковских пакетах есть установочный скрипт doinst.sh, который выполняется посмле копироания файлов. Есть ли подобное, но для удаления (doinst.sh у меня добавляет юзера и группу, а при удалении их надо убрать).


по-моему, такого там нету, хотя можешь попробовать preremove.sh — я не в курсе слаковского пакетника

DoctorSinus ★★★★★
()
Ответ на: комментарий от Lumi

ась?

Есть же инсталляционный скрипт. Он делает всю дополнительную установку, кроме копирования файлов (симлинки, новые юзеры/группы, правка конфигов,..). А где же деинсталяционный скрипт, который вернет всё обратно?

paxac
() автор топика
Ответ на: комментарий от paxac

Удалять пользователей/группы, созданных автоматически при установке пакета - очент, ОЧЕНЬ плохая идея

Led ★★★☆☆
()
Ответ на: комментарий от Led

ну вы тут все умные, а я дурак. я думал на форум заходят чтобы задавть свои вопросы и отвечать на чужие.

paxac
() автор топика
Ответ на: комментарий от paxac

Потому что установленная программа могла чего модифицировать в правах дотупа к файлам. Если ты начнёшь играться с группами/пользунами, то могут отвалиться сервисы, которые к ним приписаны.

NIR
()
Ответ на: комментарий от paxac

> Есть же инсталляционный скрипт.
И что?

А где же деинсталяционный скрипт, который вернет всё обратно?

Зачем?

ну вы тут все умные, а я дурак.

верно мыслишь

Теперь пример:
Ты поставил пакет foo.
У тебя создались пользователь и группа foo:foo
У тебя появился /etc/foo.cfg с настройками и правами 600 для foo:foo
У тебя появился /var/lib/foo с бесценными данными и правами доступа 600 для foo:foo.

Что должен делать твой деинсталляционный скрипт?
1. Грохнуть только пакет, не тронув содержимое /var/lib и /etc (оставив конфиг, группу и пользователя на месте)?
2. Грохнуть пакет, пользователя, группу и файл настроек (оставив непонятного владельца для /var/lib/foo)?
3. Грохнуть всё, убрав пакет, пользователя, группу, файл настроек и... данные?

Второй пример:
Ты поставил пакет foo. У тебя появился foo:foo
Ты поставил пакет bar. Ему тоже для работы нужен foo:foo
Ты грохнул foo.
Что должен делать твой деинсталляционный скрипт?
1. Убить foo:foo и сделать пакет bar неработоспособным?
2. Ничего не трогать и этим не напакостить в системе?

Lumi ★★★★★
()
Ответ на: комментарий от Led

Удалять пользователей/группы, созданных автоматически при установке пакета - очент, ОЧЕНЬ плохая идея

Создавать новых пользователей необдуманно автоматически тоже не лучшая идея.

tux2002
()
Ответ на: комментарий от tux2002

> Создавать новых пользователей необдуманно автоматически тоже не лучшая идея.

Перед созданием, конечно, doinst.sh проверяет, есть ли уже такая группа и пользователь.

Ну ладнол о группах и юзерах. Это я для примера сказал. НО есть же мало других вещей, связанных с установкой программы, кроме простого копирования файлов. Ну например правка конфигов других программ для интеграции с ними. Или, скажем, если устанавливается демон, то он может прописать себя в rc.local. Ну мало ли что. Какая-то несправедливая ассиметрия: установочный скрипт есть, а деустановочного — нет (хотя может и есть, но в ходе обсуждения главный вопрос темы забыли или слакварщики в отпуске)

paxac
() автор топика
Ответ на: комментарий от paxac

s/НО есть же мало/НО есть же много/

paxac
() автор топика
Ответ на: комментарий от paxac

На самом деле в слаке отсутствие этого скрипта не создаёт проблем для пользователя. В любом случае ты можешь подпилить пакетный менеджер, чтобы он умел такие вещи. Думаю, будет не так уж сложно уговорить разрабов принять такое изменение. Правда, придётся подождать, пока мейнтейнеры прикрутят оный скрипт к своим пакетам.

NIR
()
Ответ на: комментарий от DoctorSinus

Разве doinst.sh не запускается и после удаления?
Вы посмотрите внуть doinst.sh и увидите, что он удаляет симлинки.

anonymous
()
Ответ на: комментарий от anonymous

Разве doinst.sh не запускается и после удаления?

Нет. Только при установке. А как по вашему скрипт должен узнать, для чего его вызвали? Он же без всяких аргументов запускается.

Вы посмотрите внуть doinst.sh и увидите, что он удаляет симлинки.

Да. Перед тем, как создать новые.

( cd usr/lib ; rm -rf libcelt.so )
( cd usr/lib ; ln -sf libcelt.so.0.0.0 libcelt.so )
( cd usr/lib ; rm -rf libcelt.so.0 )
( cd usr/lib ; ln -sf libcelt.so.0.0.0 libcelt.so.0 )
paxac
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.