Hi!
Вопрос по установке пакетов и деинсталляции. Вот например поставил я mutt - pkg_add mutt-1.2.5, после этого он доступен для деинсталла по pkg_delete. Но когда я поставил mutt из исходников, то в pkg_info его не видно. Конечно, он будет рабочим и я его не собираюсь сносить, но вопрос общего плана - как деинсталлировать подобные программы, которые не видны в pkg_info?Всего хорошего!
С уважением, Dmitry.
Если ставил из портов ,то заходишь в этот порт
# cd /usr/ports/...
# make deinstall
Hi!
Я ставил из выкачаного файла, распаковал и в этой директории соответственно configure/make install.
Как быть в таком случае?Всего хорошего!
С уважением, Dmitry.
Не уверен ,но предполагаю,что то же самое из этой директории.
Hi!
Распаковал архив и запустил в директории (там где и инсталл делал) - make deinstall. Нет, ругается что нет такой команды. В конфигах make есть строки ininstall, но на make uninstall - тоже пишет что нет такой команды... :(
Даже переинсталлировал пакет (может он создает временные файлы) - результат тот же.
Вот так.Всего хорошего!
С уважением, Dmitry.
>Hi!
>Я ставил из выкачаного файла, распаковал
>и в этой директории соответственно
>configure/make install.
>Как быть в таком случае?в таком случае смотришь сгенеренный Makefile
и наличие в нем deinstall, uninstall или то что
там изображено в отношении удаления.В случае, если ничего не изображено, редактируешь
Makefile и создаешь deinstall/uninstall -
собственный, обратный тому что в install.А чтобы не мучаться, все надо делать в портах,
и там же свои правки вставлять, тогда будет
deinstall.>Всего хорошего!
>С уважением, Dmitry.
Hi!
Так тут в том то и дело, что ставил с порта (pkg_add, последнюю версию пакета, тк. у меня на компакте mutt'а нет - FreeBSD 4.0) - при установке крик и шум по поводу недостающих библиотек и пакетов. Ну с пакетами проще - выкачал, поставил, но когда он начал говорить что нет какой-то ...so.4 - я застрял серьезно. Вот и решил выкачать исходники - и все стало без проблем, и работает.
Но вот с видимостью пакета по pkg_info - не видно.
1.Так получается нужно просмотреть его makefile и сделать как-бы наоборот? создать свой унинсталл?
2.Или опять же проанализировав макефайл заняться чисткой вручную? те. смотреть куда что ложит и искать, удалять?Всего хорошего!
С уважением, Dmitry.
>Hi!
>Так тут в том то и
>дело, что ставил с порта
>(pkg_add, последнюю версию пакета, тк.по-русски:
- порт
- пакети звучат и означают разные вещи, за исключением
сути - создание binaries того или иного software.пакеты - packages,
pkg_name - утилиты для работы с готовыми
пакетами, собранными кем-то из freebsd team
пакеты собираются под конкретную реализацию и
конфигурацию системы, имеют зависимости...
И собраны на базе чужой системы - так понятно?ports - порты,
/usr/ports/раздел/пакет
порты включают в себя патчи, Makefile характерный
для OS FreeBSD и включает в себя зависимости,
те при установке того или иного software,
в случае отсутствия необходимой библиотеки,
software, они будут скачены и установлены в
процессе компиляции.
По-скольку конфигурирование и компиляция идут
на конкретной-собственной системе, проблем быть
не должно.>у меня на компакте mutt'а
>нет - FreeBSD 4.0) -
>при установке крик и шум
>по поводу недостающих библиотек и
>пакетов. Ну с пакетами проще
>- выкачал, поставил, но когда
>он начал говорить что нет
>какой-то ...so.4 - я застрял
>серьезно. Вот и решил выкачать
>исходники - и все стало
>без проблем, и работает.действия на примере mutt'а
1. идем на www.freebsd.org/ports/
http://www.freebsd.org/cgi/ports.cgi?query=mutt&stype=all- смотрим, есть ли нужная нам версия, смотрим
перечисленные там зависимости на предмет
криминала1.1. если нужная нам версия mutt есть в портах,
выкачиваем ее порт и если нужно зависимые порты1.2 если нужной версии нет, разбираемся с
патчами, смотрим кто их ведет и скачиваем оттуда,
если есть, если нет - делаем собственные (на сколько ума хватит)2. выкачиваем дистрибутив, кладем его в
/usr/ports/distfiles3. делаем su - root(toor)
4. cd /usr/ports/mail/mutt-devel
если портирование уже произведено, то
make && make install5 для желающих make deinstall
Примечание: порты установленные с системой
можно не трогать, а держать или cvsup'ить
свежие порты в /usr/local/ports и там ваять
все необходимое для себя.В случае использования packages или ports,
нет проблем с регистрацией и удалением установлен
ного software, ибо pkg-utilities и порты FreeBSD
сами это делают.В случае самостоятельного компиляния(без использования) /usr/ports - ни make, ни gmake
никакой регистрации не ведут и в базу ничего
не пропишут, соответственно - самостоятельно
правится сгенеренный makefile на предмет
deinstall или uninstall - какой термин больше
нравится.чтение make/gmake/imake - должны полностью
просветлить голову.Еще раз, если хочется вести базу software:
- либо use pkg_utilities
- либо portsв ином случае - ручками.
>Но вот с видимостью пакета по
>pkg_info - не видно.
>1.Так получается нужно просмотреть его makefile
>и сделать как-бы наоборот? создать
>свой унинсталл?
>2.Или опять же проанализировав макефайл заняться
>чисткой вручную? те. смотреть куда
>что ложит и искать, удалять?пункт 2. именно, а уж вручную или отредактировать
makefile:deinstall: rm -f /path/name
rm -f ...
rm -f /path/man1/nameэто по желанию
Примеры:
дано: RELEASE-4.2
хочу: свежий aviplay из current-portsВарианты:
1) взять packages из тех что для RELEASE-4.2
- однако для этого могут потребоваться
зависимые пакеты, значит нужно и их
выкачивать и устанавливать, если они
отсутствуют (НЕ ФАКТ ЧТО ВСЕ БУДЕТ ok)2) выкачать current-port для aviplay и порты
зависимостей, положить в /usr/ports/...
и попытаться собрать, при необходимости
сделать собственные правкиПримечание для п.2) - с current-ports могут
быть проблемы, по-скольку они являются зависимой
частью для системы - make, переменные make и тд
и тп. Те надо понимать и осознавать что делаешь.>
>Всего хорошего!
>С уважением, Dmitry.
Hi!
Похоже я с самого начала не соблюдал стратегию правильной установки портов. Я просто ложил порт или пакадж в свою временную директорию (которую потом удалял) и делал инсталл. Виноват, недосмотрел. А теперь я вижу есть определенная система. Пару вопросов по шагам которые ты описал:
>действия на примере mutt'а
> 1. идем на www.freebsd.org/ports/
> >http://www.freebsd.org/cgi/ports.cgi?query=mutt&s>type=all
>
> - смотрим, есть ли нужная нам версия, >смотрим
> перечисленные там зависимости на предмет
> криминала
>
> 1.1. если нужная нам версия mutt есть в >портах,
> выкачиваем ее порт и если нужно >зависимые порты
>
> 1.2 если нужной версии нет, разбираемся
> патчами, смотрим кто их ведет и >скачиваем оттуда,
> если есть, если нет - делаем собственные >(на сколько ума хватит)тут есть более новая чем у меня версия (mutt-1.3.21i.tar.gz). хорошо, выкачаю.
куда его положим на своей машине? в каком виде - сам архив или уже распакованное дерево?> 2. выкачиваем дистрибутив, кладем его в
> /usr/ports/distfilesвот тут вопрос - ты уже сказал "выкачать порт", а тут говоришь о дистрибутиве. Опечатка или что-то еще ты хотел сказать?
> 3. делаем su - root(toor)
да.
> 4. cd /usr/ports/mail/mutt-devel
эта директория как создается? из распакованного порта или ручками?
> если портирование уже произведено, то
> make && make installпортирование - это распаковка порта в /usr/ports/mail/mutt или что-то еще?
> 5 для желающих make deinstall
да.
Извини за может быть наивные вопросы, но это шаги которые я пропустил при осваивании юникса, а надо наверстать.
Всего хорошего!
С уважением, Dmitry.
>Hi!
>Похоже я с самого начала не
>соблюдал стратегию правильной установки портов.
>Я просто ложил порт или
>пакадж в свою временную директорию
>(которую потом удалял) и делал
>инсталл. Виноват, недосмотрел. А теперь
>я вижу есть определенная система.
>Пару вопросов по шагам которые
>ты описал:
>>действия на примере mutt'а
>> 1. идем на www.freebsd.org/ports/
>> >http://www.freebsd.org/cgi/ports.cgi?query=mutt&s>type=all
>>
>> - смотрим, есть ли нужная нам версия, >смотрим
>> перечисленные там зависимости на предмет
>> криминала
>>
>> 1.1. если нужная нам версия mutt есть в >портах,
>> выкачиваем ее порт и если нужно >зависимые порты
>>
>> 1.2 если нужной версии нет, разбираемся
>> патчами, смотрим кто их ведет и >скачиваем оттуда,
>> если есть, если нет - делаем собственные >(на сколько ума хватит)
>
>тут есть более новая чем у
>меня версия (mutt-1.3.21i.tar.gz). хорошо, выкачаю.
>
>куда его положим на своей машине?
>в каком виде - сам
>архив или уже распакованное дерево?ну все же разжевано:
откатывается старый порт
mv /usr/ports/mail/mutt-devel /usr/ports/mail/mutt-devel.old
- если есть такойвыкачивается дерево необходимого порта:
wget -t 0 -c --cut-dirs=6 -nH ftp://ftp.FreeBSD.org/pub/FreeBSD/branches/-current/ports/ma.../
по желанию в /usr/ports/mail или /usr/local/ports
>
>> 2. выкачиваем дистрибутив, кладем его в
>> /usr/ports/distfiles
>
>вот тут вопрос - ты уже
>сказал "выкачать порт", а тут
>говоришь о дистрибутиве. Опечатка или
>что-то еще ты хотел сказать?о-о-о господи, ПОРТ и ДИСТРИБУТИВ разные вещи
в сложившейся абревиатуре FreeBSD:порт - это поддерево того или иного софта из
/usr/ports/...дистрибутив - sources(contrib) который при
запуске make из соответствующего порта, будет
затягиваться с помощью fetch с MASTER_SITE'а
или его backup(если таковой задан в /etc/make.conf) - у меня задан ближайший с хранилищем distfiles, если на них отсутствует,
то с указанного сайта в Makefile из портаможно доверить скачивание самого дистрибутива-sources Makefile'у из порта, можно
самостоятельно скачать, допустим нет прямой
связи с internet, так понятно?
Или скажем я выкачиваю дистрибутив с версией
для которой сам буду делать порт.By default, дистрибутив - sources, закачивается
в /usr/port/distfiles и оттуда разворачивается
в .../work/$PORT-$VERSIONВ include make'а:
/usr/ports/Mk/bsd.port.mk - описаны переменные
которыми можно манипулировать под себя:export DISTFILE=/var/tmp
export WORKDIR=...
и тд и тпк примеру, наш босс привык к relcom'овскому
mailx'у который использует старые библиотеки
из compat, чтобы уйти от этого, пришлось
поковырять sources, поправить и сделать порт
этого mailx. И все из-за руских help'ов, но
главное forward'а.>
>> 3. делаем su - root(toor)
>
>да.
>
>> 4. cd /usr/ports/mail/mutt-devel
>
>эта директория как создается? из распакованного
>порта или ручками?если использован указанный выше wget, то все
автоматом, если был выкачан полный набор:ports.tgz то из него
можно и ручками, как угодно.
>> если портирование уже произведено, то
>> make && make install
>
>портирование - это распаковка порта в
>/usr/ports/mail/mutt или что-то еще?портирование - оно портирование и есть,
берется software и затем создается его порт-
адоптация для работы в FreeBSD, правки и тд и тп>> 5 для желающих make deinstall
>
>да.
>
>Извини за может быть наивные вопросы,
>но это шаги которые я
>пропустил при осваивании юникса, а
>надо наверстать.достаточно написать пару программ или что-нить
самостоятельно портировать, тогда и make
и gmake и imake и gcc/g++ потребуется изучить>Всего хорошего!
>С уважением, Dmitry.