LINUX.ORG.RU
ФорумTalks

Господи, какое ж это щастье, когда менеджер пакетов не на питоне!

 


0

1

У меня всё.

Если кто не понял: хрен бы с ней с компиляцией, но вычисление зависимостей, поиск пакета-владельца файла и т.п. – pacman делает мгновенно, в то время как на «самом быстром дистре» emerge, equery, eix пердолятся часами.

★★★★★
Ответ на: комментарий от wandrien

Каким образом выбор из равноценных реализаций означает завязывание на эту реализацию? Ну что за дикий бред вы несёте?

Имеем интерфейс И и его реализации Р1 и Р2. Если я использую Р2 через И, то я завязываюсь на интерфейс И, а не конкретную реализацию Р2. Так понятнее?

Rootlexx ★★★★★
()
Последнее исправление: Rootlexx (всего исправлений: 1)
Ответ на: комментарий от wandrien

Вызывать clang как clang запрещает какое-то верование или что?

BTW, вот это и есть завязывание на конкретную реализацию.

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

Ну и? Вот в Арче решили gcc всунуть как «an interface to the standard C compilation system». Всё логично.

Но вы почему-то непременно хотите переопределять стандартные утилиты симлинками. Будто это ваше святое право ;)

А почему бы не переопределить ls, rm или ping? Как там дебиан предусматривает такую возможность из коробки? Или придётся снести coreutils и iputils?

Это было первое.

Теперь второе. Там в документе написано: c99. А не /usr/bin/c99.

Что означает имя команды, когда оно написано без слешей, надеюсь, объяснять не требуется.

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

BTW, вот это и есть завязывание на конкретную реализацию.

Если мне нужен clang, я вызываю clang.

Если мне нужен (всё равно какой, лишь бы POSIX-совместимый) sed, я вызываю sed.

Если мне нужен конкретно gawk, я вызываю gawk.

Это называется использовать имена по их смыслу, и не пытаться втиснуть в имена то, что они не означают.

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

Вот в Арче решили gcc всунуть как «an interface to the standard C compilation system».

Ну вот в Debian можно стандартным способом выбрать реализацию, предоставляющую /usr/bin/c99, а в Arch нет. Вам лично это, возможно, не нужно — но вы лично это ещё не все люди мира.

Теперь второе. Там в документе написано: c99. А не /usr/bin/c99.

Обсуждается Debian, в котором данная команда расположена по данному пути.

Более того, обсуждается (ну, по крайней мере, обсуждалась) система альтернатив в принципе, а не конкретно этот пример, один из многих.

Если мне нужен clang, я вызываю clang.

Если мне нужен (всё равно какой, лишь бы POSIX-совместимый) sed, я вызываю sed.

А если нужен C99-компилятор (всё равно какой, в рамках описанного интерфейса), то в правилах сборки по дефолту указываю c99.

Это называется использовать имена по их смыслу, и не пытаться втиснуть в имена то, что они не означают.

Что означает c99, чётко определено — см. стандарт. Использование c99 как компилятора C99 не противоречит предназначению c99 от слова «никак».

В Debian есть несколько реализаций c99. Debian позволяет стандартным способом выбрать реализацию c99. В чём проблема - в упор не вижу.

Продолжение разговора считаю бессмысленным. Можете ещё раз написать, что мне-де просто нечего сказать.

Rootlexx ★★★★★
()
Последнее исправление: Rootlexx (всего исправлений: 1)

Да, pacman шустрый, а что, разве emerge на питоне? Не знал.

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

Просто во время установки пакета выводит на экран все его опциональные зависимости.

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

Блин, точно. Войд же стоял на ноуте, который я оставил бывшей.

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

Я обдумал диалог и все кейсы, которые в нём обсуждались.

Сейчас думаю, что наличие такого механизма в ОС в целом является полезным для того, чтобы подпирать костылями случаи, когда где-то что-то захардкожено или используется «традиционно, но неправильно».

Но стремление дебиана что угодно объявить альтернативой, как то pager или editor, не одобряю.

Это создаёт лишний слой абстракции и лишний механизм порождения зависимостей в составе управления пакетами. Как с тем пресловытым веб-браузером, когда кто-нибудь ошибочно воткнёт жесткую зависимость на него, а потом придётся подпирать это другим набором костылей. (Фейковым браузером, например.)

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 2)
Ответ на: комментарий от olegsov

Гениально.

Конечно гениально.

Мне ни разу за время использование дебиана не сослужили добрую службу ни suggested packages, ни даже recommended packages. Всегда эту бесполезную опцию приходилось отключать.

Так что ОС, в которой смогли бесполезное назвать бесполезным и выкинуть, чуть более гениальна, чем дебиан.

И за 10 лет мне автоматическая установка рекомендаций никогда не пригодилась.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от Rootlexx

Кстати, а есть какой-то итоговый индекс, где перечислены все пакеты из состава релиза, объявляющие альтернативы?

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

причем тут рекомендации? главный функционал это автоматическая установка зависимостей, причем нужных версий.

коенчно есть один C но разные программы могут использовать специфические фичи языка которые работают как надо только в конкретной версии и поэтому надо установить именно эту версию. это для примера, не реальный случай.

опять же я в теории говорю, а как там оно реализовано не знаю, скорее всего криво. я думаю надо иметь какие-то системно защищенные пакеты чтобы оно не сносило что попало, так что не утверждаю что конкретно apt идеален, но суть в том что функция этой системы в том чтобы решать проблемы зависимостей, и убрав эту функцию нельзя говорить что получилось то же самое но лучше.

если вам не надо это то и не используйте, кто вас заставляет? не понимаю этот юношеский максимализм когда тебе что-то не нравится и ты призываешь это уничтожить везде, даже там где тебя нет…

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

причем тут рекомендации? главный функционал это автоматическая установка зависимостей, причем нужных версий.

При том, что речь в этой ветке диалога шла про рекомендованные пакеты, а не про зависимости.

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

Кстати вот так pacman удобно отображает рекомендации:

Ставим какой-нибудь пакет:

# pacman -S kate
разрешение зависимостей...
проверка конфликтов...

Пакет (37)                 Новая версия  Изменение размера  Размер загрузки

extra/attica               5.88.0-1               1,39 MiB         0,54 MiB
extra/editorconfig-core-c  0.12.5-1               0,10 MiB         0,03 MiB
extra/http-parser          2.9.4-1                0,06 MiB         0,02 MiB
extra/kactivities          5.88.0-1               0,87 MiB         0,32 MiB
extra/karchive             5.88.0-1               0,75 MiB         0,37 MiB
extra/kauth                5.88.0-1               0,94 MiB         0,32 MiB
extra/kbookmarks           5.88.0-1               1,30 MiB         0,59 MiB
extra/kcodecs              5.88.0-1               1,15 MiB         0,36 MiB
extra/kcompletion          5.88.0-1               1,62 MiB         0,70 MiB
extra/kconfig              5.88.0-1               3,38 MiB         1,11 MiB
extra/kconfigwidgets       5.88.0-1               3,31 MiB         1,22 MiB
extra/kcrash               5.88.0-1               0,32 MiB         0,12 MiB
extra/kdbusaddons          5.88.0-1               0,64 MiB         0,24 MiB
extra/kded                 5.88.0-1               0,11 MiB         0,05 MiB
extra/kglobalaccel         5.88.0-1               0,65 MiB         0,24 MiB
extra/kguiaddons           5.88.0-1               0,76 MiB         0,31 MiB
extra/ki18n                5.88.0-1              17,69 MiB         1,94 MiB
extra/kiconthemes          5.88.0-1               1,03 MiB         0,51 MiB
extra/kio                  5.88.0-1              26,86 MiB         7,75 MiB
extra/kitemviews           5.88.0-1               1,50 MiB         0,60 MiB
extra/kjobwidgets          5.88.0-1               1,04 MiB         0,35 MiB
extra/knewstuff            5.88.0-1               5,60 MiB         1,91 MiB
extra/knotifications       5.88.0-1               1,06 MiB         0,48 MiB
extra/kpackage             5.88.0-1               1,04 MiB         0,33 MiB
extra/kparts               5.88.0-1               2,37 MiB         1,02 MiB
extra/kservice             5.88.0-1               1,88 MiB         0,72 MiB
extra/ktexteditor          5.88.0-1              13,98 MiB         3,53 MiB
extra/ktextwidgets         5.88.0-1               2,20 MiB         0,85 MiB
extra/kuserfeedback        1.0.0-1                2,54 MiB         0,47 MiB
extra/kwallet              5.88.0-1               2,16 MiB         0,51 MiB
extra/kxmlgui              5.88.0-1               4,74 MiB         1,69 MiB
extra/libgit2              1:1.2.0-1              1,84 MiB         0,60 MiB
extra/qt5-speech           5.15.2-1               0,17 MiB         0,05 MiB
extra/sonnet               5.88.0-1               2,34 MiB         0,65 MiB
extra/syndication          5.88.0-1               2,39 MiB         1,00 MiB
extra/syntax-highlighting  5.88.0-1               9,16 MiB         1,36 MiB
extra/kate                 21.08.3-1             24,38 MiB         8,14 MiB

Будет загружено:     41,02 MiB
Будет установлено:  143,33 MiB

:: Приступить к установке? [Y/n] 
:: Получение пакетов...

И в конце установки видим все рекомендации, и для чего каждая может потребоваться:

:: Обработка изменений пакета...
( 1/37) установка kjobwidgets
Дополнительные зависимости для 'kjobwidgets'
    python-pyqt5: for the Python bindings [установлено]
( 2/37) установка kdbusaddons
Дополнительные зависимости для 'kdbusaddons'
    python-pyqt5: for the Python bindings [установлено]
( 3/37) установка kconfig
Дополнительные зависимости для 'kconfig'
    python-pyqt5: for the Python bindings [установлено]
( 4/37) установка kcrash
Дополнительные зависимости для 'kcrash'
    drkonqi: KDE crash handler application
( 5/37) установка kglobalaccel
( 6/37) установка kauth
Дополнительные зависимости для 'kauth'
    python-pyqt5: for the Python bindings [установлено]
( 7/37) установка kcodecs
Дополнительные зависимости для 'kcodecs'
    python-pyqt5: for the Python bindings [установлено]
( 8/37) установка kguiaddons
Дополнительные зависимости для 'kguiaddons'
    python-pyqt5: for the Python bindings [установлено]
( 9/37) установка ki18n
Дополнительные зависимости для 'ki18n'
    python-pyqt5: for the Python bindings [установлено]
    python: to compile .ts files [установлено]
(10/37) установка kconfigwidgets
Дополнительные зависимости для 'kconfigwidgets'
    python-pyqt5: for the Python bindings [установлено]
    perl: for preparetips5 [установлено]
(11/37) установка kitemviews
Дополнительные зависимости для 'kitemviews'
    python-pyqt5: for the Python bindings [установлено]
(12/37) установка karchive
(13/37) установка kiconthemes
Дополнительные зависимости для 'kiconthemes'
    breeze-icons: fallback icon theme
(14/37) установка kxmlgui
(15/37) установка kbookmarks
(16/37) установка qt5-speech
Дополнительные зависимости для 'qt5-speech'
    flite: flite TTS backend
    speech-dispatcher: speech-dispatcher TTS backend [установлено]
(17/37) установка knotifications
Дополнительные зависимости для 'knotifications'
    qt5-declarative: QML bindings [установлено]
(18/37) установка kservice
(19/37) установка kwallet
Дополнительные зависимости для 'kwallet'
    kwalletmanager: Configuration GUI
(20/37) установка kcompletion
Дополнительные зависимости для 'kcompletion'
    python-pyqt5: for the Python bindings [установлено]
(21/37) установка sonnet
Дополнительные зависимости для 'sonnet'
    hunspell: spell checking via hunspell [установлено]
    aspell: spell checking via aspell [установлено]
    hspell: spell checking for Hebrew [установлено]
    libvoikko: Finnish support via Voikko [установлено]
    qt5-declarative: QML bindings [установлено]
(22/37) установка ktextwidgets
(23/37) установка kded
(24/37) установка kio
Дополнительные зависимости для 'kio'
    kio-extras: extra protocols support (sftp, fish and more)
    kdoctools: for the help kioslave
    kio-fuse: to mount remote filesystems via FUSE
(25/37) установка kpackage
(26/37) установка attica
(27/37) установка syndication
(28/37) установка knewstuff
Дополнительные зависимости для 'knewstuff'
    kirigami2: QML components
(29/37) установка kparts
(30/37) установка syntax-highlighting
Дополнительные зависимости для 'syntax-highlighting'
    qt5-declarative: QML bindings [установлено]
(31/37) установка http-parser
(32/37) установка libgit2
(33/37) установка editorconfig-core-c
(34/37) установка ktexteditor
(35/37) установка kactivities
Дополнительные зависимости для 'kactivities'
    qt5-declarative: QML bindings [установлено]
(36/37) установка kuserfeedback
Дополнительные зависимости для 'kuserfeedback'
    qt5-declarative: QML bindings [установлено]
    qt5-charts: User Feedback console
    qt5-svg: User Feedback console [установлено]
(37/37) установка kate
Дополнительные зависимости для 'kate'
    konsole: open a terminal in Kate
    clang: C and C++ LSP support [установлено]
    python-lsp-server: Python LSP support
    texlab: LaTeX LSP support
    rust: Rust LSP support
    git: git-blame plugin [установлено]
:: Запуск post-transaction hooks...
(1/4) Arming ConditionNeedsUpdate...
(2/4) Reloading system bus configuration...
(3/4) Updating icon theme caches...
(4/4) Updating the desktop file MIME type cache...

Не помню, умеет ли так APT.

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