LG.BALUKATION's Weblog

Ничего, это тоже кое-что… А при желании из него можно сделать что угодно

Управление программами в Макинтоше

Posted by LG.BALUKATION на 2008/12/01

Нарвался тут недавна на косяк в маке…

Суть в том, что тут можно заиметь софт в виде каталога *.app — там внутри будет бинарник, ресы и ещё что-то, а файловый менеджер при попытке перейти в каталог сразу станет запускать бинарник — т. е. для юзера оно будет как будто «скачал значёк программы из интернета, скопировал в папку софта и юзай… Захотел удалить — сотри значёк и прога исчезнет». Данный подход состоит из адской смеси плюсов и минусов, но он есть прям из коробки.

Так же прям из коробки есть второй, более классический метод. Это уже нечто типа обычной тулзы по установке/удалению пакетов (pkgutil(1) — Query and manipulate the installer package receipt database). Напрямую я его не юзал — но оно нечто типа инсталлшилда в мастдае и некоторый софт его юзает. Просто идут пакеты, при щелчке по которым запускается, как я понимаю, обёртка над этой штукой, спрашивает куда ставить или ещё что такое — кароче обычный мастер установки софта. Apple юзает эту методику для установки самой макоси и средств разрботки для неё, большинство же прикладного софта посавляется в виде *.app.

Софт для этих способов обычно распространяется в вииде *.dmg — дискового образа. Образ монтируется подобно исошке или скажем флехе, содержит обычно набор пакетов (*.pkg — если используется второй способ) и краткую доку а-ля ReadMe. В случае первого способа хорошим тоном считается включать туда и ссылку на папку софта — чтоб юзер мог просто перетащить файл по окошку и прога поставилась куда нужно. Выбор способа обычно определяется желанием и возможностью разработчика запихнуть всю прогу в один каталог (*.app) или раскидать по файловой системе (*.pkg).

Помимо всего этого коробочного счастья, есть и сторонние штуки — например можно юзать систему портов (нечто типа BSD или Gentoo), были какие-то наработки по системе Portage (стандартное средство Gentoo), для любителей бинарников есть репозиторий дебов и наверняка что-нить ещё. Основное отличие этих штук от коробочных средств заключается в наличии репозиториев (Apple поддерживает тока каталог софта, но оттуда нада самому качать и ставить). Существует мнение, что не рекомендуется юзать несколько сторонних средств управления софтом одновременно — мне такое мнение кажется весьма логичным, благо я уже пробовал в отрочестве ставить две ОСи в одну партицию и видел коллизии софта, установленного в разных системах, но в одну и ту же директорию +)

Такая ситуация весьма запутывающая, потому как например кучу свободного софта можно собрать самому, или поставить через сторонний менеджер прог, или скачать бинарник для одного из двух коробочных способов…

Подобно венде, тут не совсем ясно, как обстоят дела с обновлениями — в случае сторонних тулз всё более-менее ясно (там же есть репозитории!), но вот коробочные методы не так просты. Например в *.app часто (но не всегда!) встраивают механизмы проверки обновок и прога (обычно при запуске) смотрит в сети свой хомяк на предмет выход новой версии. Вот только механизм такой вроде как зависит уже от программиста и не все заморачиваются с его реализацией.

С пакетами же всё заметно сложнее… Обычно это весьма системно-близкие штуки. Например Xcode (IDE+SDK+GCC для MacOS X) вроде как нельзя обновить — можно тока снести старую и поставить новую версию. Но тут-то и начинается самое интересное — кажися стандартного средства снести поставленного таким обраом софт нет!

Паскоку оно ставится не в один каталог, а разносится туевой хучей файлов по всей файловой системе, «просто стереть папочку» тут не прокатит. Более-менее универсальным способом является получение списка добавленных файлов и снос указанного там файла, но меня лично удивило, что такого автоматического механизма нет — логично былоб предположить, что кроме установщика пакетов должна быть и их удалялка. К тому ж это не решает проблему всякого мусора от софта (хотя эту проблему мало что решает — та ещё проблемища!), посему некоторые пакеты содержат в себе и скрипт удаления себя-любимого. Интересный подход, но он используется =)

Таково моё краткое понимание системы управления софтом в MacOS X, так я делал установку и (иногда) удаление программ в своём Macintosh’е. Оно не обязательно верно или полно — я пользуюсь этой ОСью всего пару месяцев и многих её нюансов просто не понимаю.

Косяк же связан с Qt. Однажды, с поставил се последнюю версию DjView (единственный, из встречавшихся мне на Windows и Linux, достойный внимания просмотрщик дежавю-файлов) и оно прекрасно работало. Однако, спустя некоторое время, я уже побольше освоил свою фруктовую систему и решил попробовать прогать на ней. Т. к. мне интересно посмотреть Qt, я обзавёлся идеей прикрутить и её SDK на ноут. Тому есть несколько путей, я выбрал простейший и скачал готовые *.pkg с сайта Нокии, однако после их установки отвалился DjView (единственная у меня в ноуте прога, написанная на Qt). На днях я это заметил и решил снести Qt, потому как оно есть и на десктопе, а книжки смотреть иногда хоццо больше, чем компилить код… Попутно выяснилось, что я не знаю как сносить *.pkg =)

Ну а как ставить и сносить софт в маке я уже кратко рассказал выше, хотя и не упомянул почти ничего про сторонние системы управления прогами — просто обычно это аналоги (полные или идейные) таковых в прочих Unix-based и зная одну из этих систем, разобраться с ними будет не сложно. Лично я использую MacPorts.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s