From: Alexey Tourbin <at@altlinux.ru> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: Re: [devel] abstract TeX dependencies Date: Thu, 19 Mar 2009 01:18:13 +0300 Message-ID: <20090318221813.GA26967@altlinux.org> (raw) In-Reply-To: <m3ab7ic2jk.fsf@blard.localdomain> [-- Attachment #1: Type: text/plain, Size: 5059 bytes --] On Wed, Mar 18, 2009 at 08:45:51PM +0600, Michael Pozhidaev wrote: > >> 1. /usr/bin/latex, /usr/bin/dvips etc. > > > > Для зависимостей Requires это предпочтительный вариант. > > Такие зависимости сейчас генерируются автоматически. > > Есть некоторые случаи, когда требуется только наличие некоторых > директорий, чтобы туда положить расширения tex, соблюдая возможность > пользователя самому выбрать tetex/texlive. При установке rpm автоматически создает недостающие промежуточные каталоги. С другой стороны, это создает проблему "ничейных каталогов". Эту проблему сложно решить хорошо без преумножения сущностей. Иерархия вложенности каталогов фс не всегда хорошо согласуется с упорядоченностью зависимостей. Иначе можно договориться до того, что все пакеты, которые что-то требуют, должны лежать в подкаталогах относительно тех пакетов, которые они требуют. Но этот расклад по смыслу не всегда выполняется. Короче, не следует преувеличивать эту проблему, и не следует делать её главным аргументом как распилить пакеты и какие должны быть зависимости. Конечно, если есть очевидное и инуитивное решение для конкретного случая, то это решение надо реализовать. Создание пакета-пустышки, который владеет каталогом -- это преумножение сущеностей; такое решение не относится к очевидному и интуитивному, но, в принципе, это возможное решение. > Какой из путей более правильный/возможный: > 1. включить все подобные директории в отдельный общий пакет, который > может жить вместе с любым дистрибутивом tex. Сейчас есть tex-common, но > kirill@ говорит, что включить туда *все* директории, которые могут > понадобится не так просто. Если я не правильно усёк проблему, пусть > kirill@ скажет это точнее; Забейте на эту проблему (пока). Её можно решить очень строго и совершенно автоматически: для каждого файла в пакете ставить зависимость на родительский каталог. Но мы получим слишком жесткие и нежелательные зависимости. Чтобы побороть жесткие и нежелательные зависимости, придётся у многих пакетов отпиливать базовый пакет-пустышку, который владеет каталогами. Я сомневаюсь, что это нужно делать, и что это реально что-то решает. > 2. иметь какую-нибудь виртуальную зависимость (которая не ставится в > rpmdb и разрешается через provides), удовлетворяя которую появляются все > нужные директории, но удовлетворить её могут как tetex, так и texlive. Это искусственное решение искусственной проблемы. Реальной проблемы нет (реальная проблема -- это работоспособность пакетов, и зависимости пакетов, которые должны обеспечивать работоспособность). Короче, не надо пытаться решить проблему владения каталогами, как будто это главная проблема, которую нужно решить. Конечно, это не значит, что владение каталогами можно целиком игнорировать. > 3. указать в requires прямо имя директории. Для конечных пакетов это самое простое и правильное решение. > Сейчас попробовал попросить > apt разрешить такую зависимость при установленном texlive. так он > собрался texlive вообще удалить, что не подходило бы по замыслу. Увы, апт штука глюковатая. Но это отчасти решаемо. Думаю, что в ближайшее время я что-нибудь решу. > [msp@blard ~]$ sudo apt-get install /usr/share/texmf/fonts > Reading Package Lists... Done > Building Dependency Tree... Done > Selecting tetex-core for '/usr/share/texmf/fonts' Зависимости /usr/share/texmf/fonts в базе апта нету. $ $TMPDIR/build/aptbox/apt-cache showpkg /usr/share/texmf/fonts W: Unable to locate package /usr/share/texmf/fonts $ apt-get выбрал эту зависимость через pkgRecords, то есть через просмотр списков %{FILENAMES} в pkglist.classic.bz2. Выбор через pkgRecords работает только через командную строку. $ bzcat /ALT/Sisyphus/{i586,noarch}/base/pkglist.classic.bz2 |./pkglist-query '[%{=NAME}\t%{=ARCH}\t%{FILENAMES}\n]' - |awk '$3=="/usr/share/texmf/fonts"' tetex-core i586 /usr/share/texmf/fonts texlive-base-bin i586 /usr/share/texmf/fonts texlive-font-utils i586 /usr/share/texmf/fonts $ Короче, смысл в этом такой: 1) когда на командной строке говорят 'install foo'; и 2) когда апт рекурсивно разрешает зависимости пакетов; то работают два совершенно разных алгоритма. Первый алгоритм называется TryToInstall, а второй -- MarkInstall. То есть когда Вы сказали 'install /usr/share/texmf/fonts', то по результату нельзя судить, что будет, если пакет будет содержать зависимость на /usr/share/texmf/fonts. > The following extra packages will be installed: > tetex-core > The following packages will be REMOVED: > ghostscript-utils kde kdegraphics kdegraphics-kdvi texlive-base > texlive-base-bin texlive-extra-utils texlive-font-utils > texlive-fonts-recommended texlive-lang-cyrillic texlive-latex-base > texlive-latex-recommended texlive-math-extra texlive-metapost texlive-omega > texlive-publishers texlive-science > The following NEW packages will be installed: > tetex-core > 0 upgraded, 1 newly installed, 17 removed and 509 not upgraded. [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2009-03-18 22:18 UTC|newest] Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top 2009-03-17 9:57 Kirill Maslinsky 2009-03-17 12:29 ` Alexey Tourbin 2009-03-18 14:45 ` Michael Pozhidaev 2009-03-18 16:06 ` Kirill Maslinsky 2009-03-18 16:07 ` Mikhail Gusarov 2009-03-18 16:13 ` Kirill Maslinsky 2009-03-18 16:16 ` Mikhail Gusarov 2009-03-18 18:01 ` Grigory Batalov 2009-03-18 18:44 ` Kirill Maslinsky 2009-03-18 18:52 ` Igor Vlasenko 2009-03-18 21:15 ` Michael Pozhidaev 2009-03-18 22:50 ` Grigory Batalov 2009-03-24 18:07 ` [devel] rpm file conflicts Kirill Maslinsky 2009-03-24 19:27 ` Igor Vlasenko 2009-03-24 19:38 ` Kirill Maslinsky 2009-03-24 19:41 ` Artem Zolochevskiy 2009-03-24 19:53 ` Igor Vlasenko 2009-03-18 22:32 ` [devel] abstract TeX dependencies Alexey Tourbin 2009-03-19 0:16 ` Денис Смирнов 2009-03-18 22:18 ` Alexey Tourbin [this message] 2009-03-18 23:12 ` Michael Pozhidaev 2009-03-18 16:43 ` Kirill Maslinsky 2009-03-18 16:46 ` Mikhail Gusarov 2009-03-18 22:51 ` Alexey Tourbin 2009-03-24 16:37 ` [devel] grab all specfiles Alexey Tourbin 2009-03-24 19:23 ` Igor Vlasenko 2009-03-24 19:42 ` Kirill Maslinsky 2009-03-26 13:18 ` Michael Shigorin 2009-03-18 13:57 ` [devel] abstract TeX dependencies Alexander Borovsky 2009-03-18 15:15 ` Grigory Batalov 2009-03-18 15:59 ` Kirill Maslinsky 2009-03-18 16:00 ` Kirill Maslinsky
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20090318221813.GA26967@altlinux.org \ --to=at@altlinux.ru \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git