LINUX.ORG.RU
ФорумTalks

Opensource way. Удаление программ.


0

0

Классическая схема устнаовки opensorce программного обеспечения гласит:

1. качаешь исходники из интернета.

2. выполняешь магическую последовательность (./configure ...; make; sudo make install;).

При этом оценивается конфигурация системы в целом, формируются промежуточные Makefile-ы, далее на их основе производится сборка и установка программы.

Вопрос:

Как быть в случае если я захотел удалить установелнную таким образом программу? про make uninstall я знаю, но что если я к тому времени уже удалил исходники из которых устанавливал программу? Заново выполнять распаковывать, выполнять ./configure ? - не хочется. Перед удалением скопировать все Makefile-ы ? - лень с этим возится, да и в целом способ какой-то неудобный. Менеджер пакетов ? - не совсем правильное решение, например , если у меня LFS.

Как сделать правильно ?

Интересует иделогически правильный способ деинсталированния программы.


уже давно для этих целей существует checkinstall вместо make install. Установи checkinstall и используй его :)

Keiko
()

Идеологически правильно говорить ./configure --prefix=$HOME/opt/имясофтины

Ну а удалять - rm -rf $HOME/opt/имясофтины

Как добавить все поддиректории в $HOME/opt в PATH, LD_LIBRARY_PATH и MAN_PATH - сам знаешь.

VitalyLugovsky
()

> Интересует иделогически правильный способ деинсталированния программы.

apt-get remove --purge

anonymous
()

CHECKINSTALL!!!!!!!!!!

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

2VitalyLugovsky: и какой у тебя PATH длины ? тысяча знаков или все же только девятьсот ? не смеши людей такими "советами" . правильный совет уже был - собирать пакет для данного дистра и использовать затем для установки/удаления штатные же средства. а уж будешь ты использовать для сборки checkinstall или еще чего - дело вкуса.

sasha999 ★★★★
()

> Менеджер пакетов ? - не совсем правильное решение, например , если у меня LFS.

Если под LFS понимать произвольный самосборный дистрибутив, то что мешает собрать к нему какой-нибудь package manager и использовать его? Или это мазохизм такой - не использовать менеджер пакетов из принципа?

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

А что в этом плохого? Вряд ли юзер соберёт из сырцов более 5-6 софтин. Если их больше будет, он должен начать их запакечивать, или как минимум в stow загонять, для чего этот же приём нужен.

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

>>и какой у тебя PATH длины ?

Виталий немного ошибся.

надо ./configure --prefix=$HOME/opt/

дальше export PATH=$PATH;/home/keiko/opt/bin.

/home выносим на отдельный раздел, при спонтанной переустановке Линукса все проги остаются на месте.

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

> деологически правильно говорить ./configure --prefix=$HOME/opt/имясофтины

Ну а удалять - rm -rf $HOME/opt/имясофтины

Как добавить все поддиректории в $HOME/opt в PATH, LD_LIBRARY_PATH и MAN_PATH - сам знаешь.

Что-то в этом есть. А чтобы постояно не модифицировать окружение можно создать общие директории ~/bin ~/man ~/lib, занести их в окружение, и кидать в них симлинки на ~/opt/имясофтины/bin[lib|man]. Конфликтов имен вроде быть не должно. При деинсталяции достаточно стереть ~/opt/имясофтины и битые симлинки в ~/bin[lib|man].

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

> Что-то в этом есть.

Особенно если этой прогой захочет воспользоваться жена, которой ты завел отдельный аккаунт, и выставил 700 на ~

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

а пермишены /home/opt подправить в рид онли.

ukez
() автор топика

imho в качестве инсталлера/анинсталлера рулило бы что то типа InstallShield, и UninstallShield соответственно.

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

А как установить checkinstall в Генту?

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

Если честно так и не догнал зачем это надо :) Ну создам я отдельный раздел, установлю туда проги, как это поможет решить исходную проблему?

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

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

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

Имхо, исходная проблема решена была при первом посте о checkinstall ;) Это всё Виталий виноват, не туда попёр. Да-да, именно он =)

Keiko
()

Я использую paco - http://paco.sourceforge.net/

Paco is a source code package organizer for Unix/Linux systems, originally written to aid package management when installing an LFS system.

When installing a package from sources, paco wraps the "make install" command (or whatever is needed to install the files into the system), and generates a log containing the list of all installed files. Like any other package manager, paco also provides several options to print package information in different formats. It can remove packages too, among some other basic operations. See the man page for more details.

Technically, to log package installations paco follows the same approach as CheckInstall: A library is preloaded before installation, and during installation it catches the system calls that cause filesystem alterations, logging the names of the created files. But unlike CheckInstall, paco doesn't create rpm or dpkg packages. Paco is a stand-alone package manager. It can even install rpm, dpkg or slackware binary packages with the provided script superpaco.

Gpaco is the GTK+ graphic interface of paco. It's included in the same tarball and installed by default. Gpaco requires GTK+ (2.6 or later), and pkg-config.

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

checkinstall, installwatch и им подобные не решают проблемы одновременного существования нескольких разных версий. Так что - не канает.

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

Симлинки - это stow так и делает. Но для работы со stow многие софтины надо править - они должны make PREFIX=другой-не-тот-с-кем-конфигуряли install понимать.

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

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

P.S. Насколько я помню, я смог установить 2 kdevelop'a, изменив немного суффиксы. См ./configure --help насчёт --suffix.

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

Суффиксы не помогут, когда устанавливаются дополнительные файлы с данными.

anonymous
()

Ой... любители самосбора... что мешает использовать дистрибутив и пакеты к нему?? Вот и весь ответ! И извращаться меньше придется, а тот напридумывали тут...

[c0der@mycomp ~]$ du /usr/local/bin
4,0K    /usr/local/bin

php-coder ★★★★★
()
Ответ на: комментарий от MrKooll

Серьезно? Вот уж не поверил бы. Скачиваешь бинарный РПМ, и как патчить? Или SRPM надо? А зачем - проще просто тарбол скачать, скомпилять, и установить checkinstall'ом (там можно выбирать: tgz, deb или rpm).

K48 ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.