LINUX.ORG.RU

Поставить другую версию программы


0

0

Подскажите, как поставить другую версию программы, не удаляя старую? Собрал я её из исходников, и хочу проинсталлить, например, в /opt/progname, чтобы оттуда её безболезненно запускать, а затем и удалить просто сделав "rm -rf /opt/progname". Раньше знал, сейчас забыл — дебиан блин (или старость) :)

★★★★★

./configure --prefix=/opt/progname && make && make install

Sylvia ★★★★★
()

./configure --prefix=/opt/progname && make && make install && make clean

ipwww ★★
()

а затем и удалить просто сделав "rm -rf /opt/progname"

так может не всё удалиться! для удаления можно спользовать make uninstall - если в пакете есть цель "unninstall", обычно она присутствует

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

ipwww отчасти прав, т.к. ./configure --prefix конечно ставит для большинства программ все что там есть в prefix, но наиболее частые исключения , которые из этого префикса вылезают - python, perl модули, так что если делать по уму , то

configure --prefix=/opt/someprogram
make
make install DESTDIR=/tmp/someprogram

(иногда бывает INSTALL_ROOT вместо DESTDIR)

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



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

и еще исключения, для которых configure --prefix может не работать

- perl, python .... и проч. bindings, включая php/apache
- kde4 (kde3 ?) программы ставятся только в префикс самого KDE
- отдельные программы, авторам которых надо что-нибудь оторвать,
также некоторые программы не понимают DESTDIR или INSTALL_ROOT или аналог

может еще что есть...

вообщем подход должен быть индивидуален, но более чем в половине случаев

./configure --prefix DIR && make && make install

сделает то что нужно и весьма корректно




Sylvia ★★★★★
()

Вот эти всякие мелочи и беспокоят. Юзаю тестинг. Программа, которую надо таким макаром поставить — pidgin, т.к. тот, что в тестинге, несколько устаревший. Ну и снести её надо будет потом, когда в тестинге обновится пакет. Не хочется после всего этого оставлять мусор в системе.

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

Сразу бы написал это, а не морочил голову всякой хренью. Собери из исходников, сделай deb пакет и установи. Когда надо будет, снесешь этот пакет и поставишь дистрибутивный. В чем проблема горе-дебианщик?

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

ну так и соберите

./configure --prefix=/opt/pidgin что-нужно-еще

make
make install DESTDIR=/tmp/pidgin_installed

а потом посмотрите что туда поставилось, если ничего за пределы /opt/pidgin не выходит , то просто скопируете туда,
если выходит - в пакет или список файлов сделаете. хотя пиджин скорее всего встанет в пределах своего префикса

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

Мне наверное должно быть стыдно это признавать, но у меня нет опыта сборки своих пакетов в дебиане (в шлакваре всё просто — checkinstall :)), а сейчас нет времени разбираться, как это делать.

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

Спасибо, попробую :)

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

>а сейчас нет времени разбираться, как это делать.

вот это стыдно признавать

Делов то на 5 минут:
Вариант 1:
  Если нужная версия есть в sid'e
  добавить в sources.list
  deb-src http://ftp.debian.org/debian/ sid main non-free contrib

  потом 
  # apt-get update
  # apt-get build-dep pidgin
  Если все нормально, то
  # apt-get source -b pidgin
  Будет тебе пакет из sid'a собранный в твоей системе с твоими
  библиотеками

Вариант 2:
   Взять исходники
   Запустить dh_make, он создаст директорию debian/ с набором файлов
   потом
   $ debian/rules                  (это ./configure ...)
   $ debian/rules build            (это make)
   $ fakeroot debian/rules binary  (создание пакета)

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

>у меня нет опыта сборки своих пакетов в дебиане

сдесь тоже все просто. Делаешь cd в директорию, в которой будешь собирать пакет. Затем

apt-get build-dep <package>
apt-get source <package>
накладываешь патчи, если нужно. Затем под рутом (вообще рекомендуют fakeroot, но у меня не всегда через него собирается нормально):
debian/rules binary

На выходе получаешь готовый пакет с бинарниками и прочей лабудой.
Если нужно поставить в нестандартное место - у dpkg есть опции --admindir, --instdir, --root.

nu11 ★★★★★
()

>в шлакваре всё просто — checkinstall

Чекинсталл есть и в Дебиане.Асильте уж.

nitz ★★
()

Большое спасибо sdio и nu11! Не думал, что так просто. Да, пакет есть в sid, попробую первый вариант.

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

>Да, пакет есть в sid, попробую первый вариант.

если пакет только один, то можно не захламлять sources.list репами сида и загрузить сырцы руками. На packages.debian.org находишь пакет, на его странице справа есть ссылки "Загрузка пакета исходного кода". Качаешь все три файла tar.gz, dsc, diff.gz. Кидаешь в один каталог, затем

dpkg-source -x <package>.dsc

получаешь распакованые сырцы с дебиановскими патчами. Собирать аналогично, debian/rules binary



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

Сделал, всё получилось, спасибо!

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