Автор Тема: Пълно премахване на програма  (Прочетена 2512 пъти)

plamen_t

  • Напреднали
  • *****
  • Публикации: 170
    • Профил
Имам следните 2 питания:
Свалил съм си някоя програма като сорс, компилирал съм я и съм е инсталирал със make install.
    1. Ако напиша make uninstall  в папката, където е сорса и после изтрия и самата папка изтривам ли абсолютно всичко, което съм инсталирал от тази програма?
    2. Ако случайно съм изтрил папкта, където е сорса и съответно не мога да напиша make uninstall, има ли начин да премахна всички фаилове, които е създала програмата и които са се копирали извън нейната папка?

Благодаря предварително.
Активен

the_real_maniac

  • Напреднали
  • *****
  • Публикации: 1258
  • Kernel panic, me - no panic ;-) :-)
    • Профил
Пълно премахване на програма
« Отговор #1 -: Mar 29, 2005, 11:27 »
Не знам доколко е добро решние , но ако пазиш точния "configure ред" , с който си я инсталирал или поне -prefix опцията каква е била стойноста ( има ли я  / няма ли я изобщо).

Сваляш си пак сорс-а на дадената програма,вер -> разархивираш, configure ... , make uninstall

/не лош въпрос , ще ми е интересно да го следя.
Активен

Powered by Debian GNU / LINUX /// Intel inside ...

„Насилието е последното убежище на некомпетентността“ - Айзък Азимов (1920 — 1992)

CaBA

  • Напреднали
  • *****
  • Публикации: 303
    • Профил
    • WWW
Пълно премахване на програма
« Отговор #2 -: Mar 29, 2005, 11:32 »
Цитат
1. Ако напиша make uninstall  в папката, където е сорса и после изтрия и самата папка изтривам ли абсолютно всичко, което съм инсталирал от тази програма?
Може би да, може би не - зависи дали целта uninstall е написана така в make файла.

Цитат
2. Ако случайно съм изтрил папкта, където е сорса и съответно не мога да напиша make uninstall, има ли начин да премахна всички фаилове, които е създала програмата и които са се копирали извън нейната папка?
Изтегли си програмата отново, разархивирай я, влез в папката и напиши make uninstall.

А СЕГА ПРАВИЛНИЯТ НАЧИН:
Винаги използвай за инсталирането на нови програми пакетната система на твоята дистрибуция. Пакети се правят лесно, не е необходимо да си програмист. Ако не можеш да откриеш в Интернет твоята програма пакетирана, ще ти коства 15-20 минути да си спретнеш сам.  Ако ползваш базирана на RPM дистрибуция,  пробвай програмата krpmbuilder - много добър графичен помощник.
Активен

10 години ябълкова диета стигат, стигат!

plamen_t

  • Напреднали
  • *****
  • Публикации: 170
    • Профил
Пълно премахване на програма
« Отговор #3 -: Mar 29, 2005, 12:08 »
Това за  създаването на пакети за дистрибуцията ми изглежда хитро. Използвам Slackware и ако мога да превърна програмата в пакети, ще мога много лесно после да изтривам всичко, което е създала, защото всеки инсталиран пакет записва във /var/log/packages кои фаилове са инсталирани.

Нека ако някой знае такава програма за Slackware, която да  компилира сорса и да го превръща в *.tgz пакет, да каже.
Активен

  • Гост
Пълно премахване на програма
« Отговор #4 -: Mar 29, 2005, 12:17 »
checkinstall
Активен

  • Гост
Пълно премахване на програма
« Отговор #5 -: Mar 29, 2005, 12:19 »
slackware е зле с тези работи, голяма бъгня, вземи научи как се правят тези неща на fedora (или която и да е друга rpm дистрибуция), на debian или на gentoo.
Активен

rpetrov

  • Напреднали
  • *****
  • Публикации: 571
    • Профил
    • WWW
Пълно премахване на програма
« Отговор #6 -: Mar 29, 2005, 12:41 »
Цитат (Guest @ Март 29 2005,12:19)
slackware е зле с тези работи, голяма бъгня, вземи научи как се правят тези неща на fedora (или която и да е друга rpm дистрибуция), на debian или на gentoo.

От двете злини по-малката:
човек не трябва да си губи времето с дистрибуции производни на RH.
Активен

  • Гост
Пълно премахване на програма
« Отговор #7 -: Mar 29, 2005, 12:53 »
>човек не трябва да си губи времето с дистрибуции производни на RH.

ще ни кажеш ли защо това е губене на време, че да се посмееме малко ?
Активен

astronom

  • Напреднали
  • *****
  • Публикации: 254
    • Профил
Пълно премахване на програма
« Отговор #8 -: Mar 29, 2005, 13:46 »
Цитат (plamen_t @ Март 29 2005,12<!--emo&':0')
Нека ако някой знае такава програма за Slackware, която да  компилира сорса и да го превръща в *.tgz пакет, да каже.

Директен отговор: Няма. Но има инструменти - мakepkg. Можеш да прегледаш Глава 16 от Книгата за Slackware.
Иначе създаването на пакети не е чак толкова трудно. Идеята е да се изгради пакета, но да не се инсталира а файловете, които трябава да се инсталират да попаднат в пакета. Това става като се инсталира, но не в системните папки, а в някоя временна папка и след това се пусне инструмент, който рекурсивно да обходи текущата папка и да създаде пакета. Ето ти няколко бързи стъпки за създаването на пакет. Като изключим обичайните
Примерен код

$ ./configure
$ make

можеш да продължиш със
Примерен код

$ make DESTDIR=/usr/src/tmp/<package-name>-<package-version> install

или ако горното DESTDIR не сработи, то можеш да опиташ с
Примерен код

$make prefix=/usr/src/tmp/<package-name>-<package-version>/<prefix> [sysconfdir=/usr/src/tmp/<package-name>-<package-version>/<sysconfdir>, ...]
 install

където <prefix> и <sysconfdir> и др. са ти пътищата, които си указал на configure. За препоръчване е обаче първият метод, а мисля, че имаша и още един за който не мога да се сетя в момента.
След това трябва да отидеш в корената папка на пакета:
Примерен код

$cd /usr/src/tmp/<package-name>-<package-version>

като можеш да създадеш и описателен файл (незадължително)
Примерен код

$ mkdir install
$ cat '<package-name>: <package-name> <package-version> - Description' > install/slack-desc

и пишеш
Примерен код

$ makepkg -l y -c n <package-name>-<package-version>-<arch>-<revision>.tgz

kъдето <arch> е архитектурата за която е компилиран пакета (напр. i686), <revision> е ревизията на пакета.
Така създадения пакет може лесно да бъде инсталиран и деинсталиран, защото инсталатора знае кое къде е. Успех!
Активен

Г. Д. Сотиров

the_real_maniac

  • Напреднали
  • *****
  • Публикации: 1258
  • Kernel panic, me - no panic ;-) :-)
    • Профил
Пълно премахване на програма
« Отговор #9 -: Mar 29, 2005, 17:01 »
Цитат (CaBA @ Март 29 2005,12:32)
Цитат
2. Ако случайно съм изтрил папкта, където е сорса и съответно не мога да напиша make uninstall, има ли начин да премахна всички фаилове, които е създала програмата и които са се копирали извън нейната папка?
Изтегли си програмата отново, разархивирай я, влез в папката и напиши make uninstall.

---------------------------------

Грешно !
Както писах по-горе ,ако е изпозлван prefix това НЯМА да работи !
Активен

Powered by Debian GNU / LINUX /// Intel inside ...

„Насилието е последното убежище на некомпетентността“ - Айзък Азимов (1920 — 1992)

rpetrov

  • Напреднали
  • *****
  • Публикации: 571
    • Профил
    • WWW
Пълно премахване на програма
« Отговор #10 -: Mar 29, 2005, 17:56 »
След разархивиране make uninstall не би трябвало да сработи.
./configure .... създава Makefile, т.е. трябва да се повтори конфигурирането и после се деинсталира.

Бел.: това работи само при добре написани, описани и т.н. проекти. Винаги може да се намери проект, при които make uninstall не работи както трябва.

Добре е да се работи с пакети - после деинсталирането е по-лесно.

Относно въпроса "make uninstall изтрива ли абсолютно всичко ?" - НЕ. В общия случай май не трябва да го прави.

1.) Например трябва да се внимава с конфигурационните файлове. "make install" не трябва да припокрива съществуващ конфигурационен файл (желателно е). При "make uninstall" не може да разбере дали преди това е съществувал конф. файл и съответно не трябва да се деинсталира.

2.) Потребителски конфигурационни файлове - на "make uninstall" не е работа да ги изтрива и понякога технологично не може - например когато домашните директории са на сървер и се монтират при влизане в системамата.

Извода е: "абсолютно изтриване" няма. И това важи не само за Линукс, а за всяка ОС.
Активен

plamen_t

  • Напреднали
  • *****
  • Публикации: 170
    • Профил
Пълно премахване на програма
« Отговор #11 -: Mar 29, 2005, 22:05 »
Мерси astronom.
Това, което ми каза свърши работа '<img'>
Вече така ще инсталирам програмите - интелигентно '<img'>

А щом няма програма за Slackware, която автоматично да прави това, то значи е време някой да напише такава.
Ще се пробвам - може да успея '<img'>
Активен