Доступен релиз пакетного менеджера Pacman 7.1, применяемого в дистрибутиве Arch Linux. Из изменений можно выделить:...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=64162
Быстрый, лёгкий, многофункциональный. Просто лучший! :)
Nixpkgs
медленный, тяжёлый. Я никсоюзер если что.
pacman всё же один из лучших пакетных менеджеров среди императивных дистров. Но он не декларативный.
Декларация императивов конвергенция дезинтеграции.
>pacman всё же один из лучших пакетных менеджеров среди императивных дистров.Не понимаю, как можно пользоваться пакетными менеджерами с побочными эффектами, после того, как попробовал функциональные.
> Но он не декларативный.Пишешь PKGBUILD для своих dropin-конфигов, и вуаля! Теперь `pacman -S <декларация>` включает конфиг, `pacman -R <декларация>` выключает конфиг.
> Быстрый, лёгкий, многофункциональный. Просто лучший! :)Быстрый, лёгкий, простой как сапог, что несомненно хорошо.
Но вот насчёт многофункциональности... смотря с чем сравнивать?
Pacman это ставилка/удалялка пакетов, но за счёт роллинговости и в 99% только необходимости ставить пакеты более новых версий, он ещё справляется и с апгрейдом Арча.Только в пределах работы Арча оно конкурентноспособно, на фоне других пакетников только по скорости, в рамках чистого роллинга, где только вперёд и обновления на новые версии пакетов всегда и больше ничего не надо.
В других дистрах, с более классической моделью апгрейдов, pacman бы проиграл на фоне их родных пакетников по функционалу для них необходимому, реализованному и работающему штатно, а не формально и через костыли.
>В других дистрах, с более классической моделью апгрейдов, pacman бы проиграл на фоне их родных пакетников по функционалу для них необходимому, реализованному и работающему штатно, а не формально и через костыли.Тут просто обязан быть пруф.
Однако, MSYS2 почему-то взял его, а не apt, например. Не согласен про "костыли" и непригодность для других дистров, пока видел только обратное.
MSYS2 тоже rolling по сути.
А что такое MSYS2? Это что-то маздаевское что-ли? Если это маздаеское тогда почему вы его упоминаете?
> Это что-то маздаевское что-ли?Не совсем... Они написали эмулятор линуксовой консоли для Окошек, прикрутили туда MinGW (он же GCC), плюс clang. Плюс pacman. И собирают линуксовые программы нативно под винду. Те, которые такую опцию имею, естественно. В общем, если пишите кросплатформенное приложение, то скорее всего мимо MSYS2 не пройдёте.
Потому что опеннет про опенсорс, чем и является MSYS2. Почему-то местные забывают, что опеннет не только про линукс, а про вообще весь открытый/свободный софт, и не важно под какую платформу.
>Только в пределах работы Арча оно конкурентноспособноPacman создан исключительно для Arch. xbps создан исключительно для Void. slackpkg создан исключительно для Slackware. Nix создан исключительно для NixOS. Эти дистры созданы с нуля и они не опираются на наследие Red Hat и Debian. Никому из линуксоидов, кроме тебя, дурацкие мысли в голову не лезут.
Вот кстати да, есть только системы, основанные на .deb и .rpm, а остальное это игрушки
Нужно больше сегрегации по пакетноменеджерному признаку. Иначе не победите.
> есть только системы, основанные на .deb и .rpm,несовместимые между собою. По формату пакетов. Без чета недостающих зависимостей, которые в 99% случаев сделают пакеты не рабочими за пределами своего дистрибутива.
>>Только в пределах работы Арча оно конкурентноспособно
> Pacman создан исключительно для Arch.Frugalware Linux — дистрибутив Linux общего назначения, спроектированный для пользователя, знакомого с командной строкой. Он основан на Slackware, но использует другой менеджер пакетов — Pacman.
Nix создан исключительно для NixOS.
А вот и нет, nix как проект не зависит от NixOS, NixOS как раз проект, который как proof of concept того, что вокруг nix можно полностью цельный дистр построить, а так, nix не привязан к NixOS и даже более универсальный пакетник, чем нативные работающие с deb, rpm, универсальнее даже чем snap.
Эти дистры созданы> Никому из линуксоидов, кроме тебя, дурацкие мысли в голову не лезут.
Как видим, лезут и даже очень ;)
> pacman бы проиграл на фоне их родных пакетников по функционалу для них необходимомуНапример?
>Быстрый, лёгкий, примитивный. Просто еще один :)Поправил. Многофункциональный - это про Guix.
>Быстрый, лёгкийНикогда не понимал, зачем пакетному менеджеру быть быстрым и лёгким. Вы рач по выходным переустанавливаете, чтоли? От того, что пакетный менеджер будет работать ну пускай две минуты вместо 20 секунд - явно хуже не будет.
>многофункциональныйПо меркам девяностых. Сейчас пакетные менеджеры горазо мощнее.
> Вы рач по выходным переустанавливаете, чтоли?вы не понимаете сути ролинг-релиза, здесь не переустанавливать а обновлять, и не по выходным а хоть каждый день
а тем чем пользуешься очень часто должно быть быстрым и лёгким, с чем pacman справляется на все сто
>>Быстрый, лёгкий
> Никогда не понимал, зачем пакетному менеджеру быть быстрым и лёгким. Вы рач
> по выходным переустанавливаете, чтоли? От того, что пакетный менеджер будет работать
> ну пускай две минуты вместо 20 секунд - явно хуже не
> будет.
>>многофункциональный
> По меркам девяностых. Сейчас пакетные менеджеры горазо мощнее.На самом деле текущая реализация dnf, что сейчас поставляется в Fedora, не сильно-то и медленней пакмана. Pacman хорош только в роллинге, который не поддерживает штатно холдинг и откат пакетов. Оно кончено там факультативно есть в Арче, но работает на выдох и очень не рекомендуется.
> Никогда не понимал, зачем пакетному менеджеру быть быстрым и лёгким.Никогда не понимал, зачем пакетному менеджеру быть медленным и тяжелым.
> Быстрый, лёгкий, многофункциональный. Просто лучший! :)И самый бестолковый. Кто с ним первый раз сталкивается или нечасто, то из его --help вообще не понять, так как же пакет-то установить. Без обращения к поисковику с примером не понять.
> И самый бестолковый. Кто с ним первый раз сталкивается или нечасто, то из его --help вообще не понять, так как же пакет-то установить. Без обращения к поисковику с примером не понять.
man pacman
EXAMPLES
pacman -Ss ne.hack
Search for regexp "ne.hack" in package database.pacman -S gpm
Download and install gpm including dependencies.pacman -U /home/user/ceofhack-0.6-1-x86_64.pkg.tar.gz
Install ceofhack-0.6-1 package from a local file.pacman -Syu
Update package list and upgrade all packages afterwards.pacman -Syu gpm
Update package list, upgrade all packages, and then install gpm if it wasn’t already installed.Действительно, как такое понять? Это ж глаза открыть надо!
-S, --sync
Synchronize packages. Packages are installed directly from the remote repositories
-s, --search <regexp>
Search each locally-installed
-s, --recursive
Remove each target specified including all of their dependencies,
-u, --unneeded
Removes targets that are not required by any other packages.
-u, --sysupgrade
Upgrades all packages that are out-of-date
-u, --upgrades
Restrict or filter output to packages that are out-of-date on the local system.
Толковость так и прет, так и прет!
pkg search ne.hack
pkg install gpm
pkg install /home/user/foo.pkg
pkg update
pkg update --repository local-repo
pkg upgrade
pkg upgrade gpm
---pkg help install
NAME
pkg install – install packages from remote repositories or local archives
SYNOPSIS
pkg install [-AfIMnFqRUy] [-r reponame] [-Cgix]
<pkg-origin|pkg-name|pkg-name-version> ...
pkg install [--{automatic,force,no-scripts,ignore-missing}]
[--{dry-run,fetch-only,quiet,recursive,no-repo-update,yes}]
[--repository reponame]
[--{case-sensitive,glob,case-insensitive,regex}]
<pkg-origin|pkg-name|pkg-name-version> ...
Ну используй полные имена ключей, кто ж тебе не дает? Буковок в латинице не так уж много.
есть такая штука как "розетский камень" в мире ПМ
https://wiki.archlinux.org/title/Pacman/Rosetta
и как по мне в пакман наиболее лаконичный синтаксис который дополняется ясностью если немного в нём разобраться
Ах, у него оказывается, есть ещё man. Ну а если это Msys2, нету мана. Но вот --help-то тогда такой бестолковый зачем сделали?
> Ах, у него оказывается, есть ещё man. Ну а если это Msys2,
> нету мана. Но вот --help-то тогда такой бестолковый зачем сделали?Ты про это, что ли:
pacman --sync --help
использование: pacman {-S --sync} [параметры] [пакет(ы)]
параметры:
-b, --dbpath <путь> указать альтернативное расположение базы данных
-c, --clean удалить старые пакеты из кэша (-cc для всех)
-d, --nodeps пропустить проверку версий (-dd пропускает все проверки)
-g, --groups показать все пакеты данной группы
(-gg показывает все группы и пакеты)
-i, --info показать информацию о пакете (-ii показать детали)
-l, --list <repo> показать все пакеты из этого репозитория
-p, --print вывести список целей вместо выполнения операций
-q, --quiet показывать меньше информации при запросах и поиске
-r, --root <путь> указать альтернативный корневой каталог
-s, --search <regex> искать указанную строку в удаленных репозиториях
-u, --sysupgrade обновить установленные пакеты(-uu разрешает откат версий)
-v, --verbose выводить больше информации
-w, --downloadonly загрузить пакеты с сервера, но не устанавливать
-y, --refresh загрузить обновленные базы данных с серверов
(-yy принудительно обновить даже если обновленные)
--arch <arch> установить альтернативную архитектуру
--asdeps установить пакеты как неявно установленные
--asexplicit установить пакеты как явно установленные
--assume-installed <пакет=версия>
добавить виртуальный пакет для удовлетворения зависимостей
--cachedir <каталог> указать альтернативное расположение кэша
--color <когда> раскрашивать вывод
--config <путь> использовать альтернативный конфигурационный файл
--confirm всегда спрашивать подтверждения
--dbonly изменить только записи в базе данных, не файлы пакетов
--debug показывать отладочные сообщения
--disable-download-timeout
use relaxed timeouts for download
--disable-sandbox
disable the sandbox used for the downloader process
--gpgdir <путь> установить альтернативный домашний каталог для GnuPG
--hookdir <dir> установить альтернативное расположение hook
--ignore <пакет> пропустить пакет при обновлении (может быть использовано неоднократно)
--ignoregroup <группа>
пропустить группу при обновлении (может быть использовано неоднократно)
--logfile <путь> использовать альтернативный файл журнала
--needed переустанавливать только устаревшие пакеты
--noconfirm не спрашивать подтверждения
--noprogressbar не показывать индикатор выполнения при загрузке
--noscriptlet не запускать установочные скрипты, если они есть
--overwrite <glob>
overwrite conflicting files (can be used more than once)
--print-format <строка>
укажите формат вывода целей
--sysroot работать с подключенной гостевой системой (только root)Так вроде все расписано, нет?
Я сам бывший пользователь Арча с десятилетним стажем. И вот, глядя сейчас на ваш экземпл уже незамутнёнными глазами, я отчётливо понимаю, что тут новичку глаза вырачивать надо. Плохо это или не так плохо, мне уже похрен.
> Я сам бывший пользователь Арча с десятилетним стажем. И вот, глядя сейчас на ваш экземпл уже незамутнёнными глазами, я отчётливо понимаю, что тут новичку глаза вырачивать надо. Плохо это или не так плохо, мне уже похрен.Пример не мой, он из мануала пакмана. И для новичков вполне себе есть pamac, где можно намышевозить все то же самое, но без терминала. Каждому свое, мне удобнее консоль, кому-то наоборот. В чем трагедия?
> Кто с ним первый раз сталкиваетсяЧто угодно, если столкнуться с ним в первый раз, будт сложным. Проблема в чём? Продолжай сталкиваться до наступления просветления. Дорогу осилит идущий.
Как говорят яблочники, "не осуждай не поробовав" ...
Чем он лучше DNF5?
Всем.
> ... повторный импорт ключей c расчётом на то, что на сервере ключей уже имеются обновлённые ключи.Ну, ну. Желаю удачи.
Быстрым и лёгким он кажется пока его мало используешь. А потом начинаются тормоза. Когда количество файлов на HDD в /var/lib/pacman/local вырастает до 20000, начинается минутный тормоз при каждом незакешированным файловой системой обращении к этим данным о пакетах. Причём находятся сказочники, расказывающие что для ext4 не нужна программа дефрагментаци/оптимизации файловой системы. И ещё если вы решите по максимуму воспользоваться NoExtract= для каждого пакета, по 5 минут тормозов вам обеспечено при "удачном" обновлении pacman -Suy. На а так быстрый, да...
> Когда количество файлов на HDD в /var/lib/pacman/local вырастает
> HDDЯ всё понимаю, ситуации у всех разные, но думается, что проблема больше в этих трех буквах, чем в pacman.
Проблемы не в трёх буквах, проблемы в наплевательском отношении к архитектуре ПО. Или ты хочешь сказать что в требованиях к pacman есть примечание "не предназначен для работы на HDD"?
Ну для начала -- на древнем ноутбуке HDD, и каких-то особых тормозов с pacman я не наблюдаю. И проблем с винтом вроде нет. И потом, ни у одной аппликухи в требованиях я не увидел "не предназначена для запуска на утюге", и тем не менее на утюгах они работают так себе ;)
Ну я часто встречаю людей, который в упор не видят проблем. Это нормально. Живи дальше.
Ну я часто встречаю людей, которые фантазируют проблемы в вещах, которыми не пользуются. Это нормально. Живи дальше.
Наверно в моём случае твоя голова галлюцинировала. Стаж 10 лет использования.
То есть 10 лет ты искал менеджер пакетов получше?
> HDD
> на календаре конец 2025 годаПроблема найдена.
В Linux запрещено использовать HDD? Ты запретил это?
Никто не запрещает тебе пользоваться устаревшим оборудованием, но если уж решился - будь готов к потенциальным проблемам. И дело не в линуксе, так работают любые системы.
Сразу видно человека, который жёстким диском под линуксом не пользуется. Добро пожаловать из винды! Ваша оперативка используется ядром для кэша записи/чтения/редактирования файлов уже хрен пойми сколько времени.
Ты это кому ответил?
Это у вас тут дебаты со сдвигом. По аналогии с известным чаепитием.
> Добро пожаловать из винды! Ваша оперативка используется ядром для кэша записи/чтения/редактирования файлов уже хрен пойми сколько времени.Ага, главное - ничего больше не запускать, а то ядро временами заметно неохотно отдаёт формально вашу же оперативку.
Хаха! Запускать-то можно, при этом кэш в который попало содержимое из /var/lib/pacman/locale со временем теряется и тебя ждут опять тормоза при использовании pacman/ Ну а главный сюрприззз настаёт когда от чрезмерного запуска начинается своппинг из-за нехватки ОЗУ. Вот это уже серьёзное попадалово, и тормоза pacman меркнут моментально. :D
Никогда не видел таких проблем на 4GB RAM. У тебя, скорее всего, перекручен vm.swappiness.
> Никогда не видел таких проблем на 4GB RAM. У тебя, скорее всего,
> перекручен vm.swappiness.Мой:
vm.swappiness = 60
Это перекручено?У меня 16 GB RAM. Swap раздел 24GB. Но на тяжёлых задачах бывало этого не хватало.
Значит, ФС сильно фрагментирована или диск сбоит.
> Значит, ФС сильно фрагментирована или диск сбоит.Как раздел SWAP может быть фрагментирован, расскажешь? Диск не сбоит, уверяю.
> Как раздел SWAP может быть фрагментирован, расскажешь?Swap содержимое RAM хранит. А тут проблемы со скоростью чтения с HDD. И на это сильно влияет фрагментация ФС. По крайней мере, это верно для Btrfs.
>> Как раздел SWAP может быть фрагментирован, расскажешь?
> Swap содержимое RAM хранит. А тут проблемы со скоростью чтения с HDD.
> И на это сильно влияет фрагментация ФС. По крайней мере, это
> верно для Btrfs.Парень, я уже не понимаю о чём ты. Очевидно вся проблема в многочисленном перемещении головок HDD из-за гениальности авторов pacman. Точка. Ты всё ещё хочешь чем-то мне помочь?
Я давно уже не парень, но муж.
И на меня, похоже, гениальность авторов Pacman не распространяется. (Или распространяется?) Короче, у меня на HDD (WD 750GB, LUKS2/Btrfs+zstd, 4GB RAM) pacman работал прекрасно, и уж точно быстрее многих других пакетников. Чем тебе помочь, я даже уже и не знаю.
Причём если после глубокого своппинга ты всё таки дождался освобождения ОЗУ, то наччинается следующая проблема - возвращение данных их свопа обратно в ОЗУ. Я созерцая работу этих, кхе, алгоритмов в Линуксе думал ктож такой продвинутый это написал что всё это так "работает"... НА виндже не помню таких проблем со свопом. Он там хоть и тормозит, но обычно ресет жать никогда не приходилось, потому что тяжёлые случае вполне реанимируются.
Не дожидайся. Пользуй SysRq+F / SysRq+S. (Винда в таких случаях просто умирает - даже на CTRL+ALT+DEL не отвечает.)
Но вообще своп в Линуксе нужно уметь готовить под своё железо.
Например, если много памяти, то можно зарезервировать её кусок под своп со сжатием (zram). Если средне, можно гибрид (zswap): часть сжать в памяти, что не влезло - на диск. Zswap, если не ошибаюсь, под Арчем во всех ядрах включен по умолчанию.
Если памяти мало, можно настроить OOM-killer. В systemd он включен по умолчанию, но, скорее всего, придётся покрутить настройки.
И т.д. и т.п.
> Не дожидайся. Пользуй SysRq+F / SysRq+S. (Винда в таких случаях просто умирает
> - даже на CTRL+ALT+DEL не отвечает.)
> Но вообще своп в Линуксе нужно уметь готовить под своё железо.
> Например, если много памяти, то можно зарезервировать её кусок под своп со
> сжатием (zram). Если средне, можно гибрид (zswap): часть сжать в памяти,
> что не влезло - на диск. Zswap, если не ошибаюсь, под
> Арчем во всех ядрах включен по умолчанию.
> Если памяти мало, можно настроить OOM-killer. В systemd он включен по умолчанию,
> но, скорее всего, придётся покрутить настройки.
> И т.д. и т.п.Ой, не рассказывай мне сказки. Ты точно не перепутал местами Виндовс и Линукс? Это на моём Арче интерфейс замораживается "навсегда" при своппинге. А вот на Виндовс такого никогда не было. Впрочем я уже 10 лет не использую Виндовс, там возможно тоже полная деградация.
> на моём Арче интерфейс замораживается "навсегда" при своппингеНа твоём - вероятно. На моём работает SysRq+F (убивает тяжелый процесс) или SysRq+S (синкает кэш записи на диск и оживляет систему на короткий промежуток времени).
Включить эти кнопки можно через sysctl. Например:
# sysctl -w kernel.sysrq=208 # включает "магические" B, F и S.
Для перманентных изменений можно создать файл c этим параметром в /etc/sysctl.d/*.confКороче, читай Вику. Чё как маленький.
> А вот на Виндовс такого никогда не было.
Ну, последняя Винда, которой я пользовался, была Семёрка. И там система умирала на некоторых тяжелых играх. На клавиатуру не реагировала. Даже диспетчер процессов не открывался. Вряд ли в новых что-то изменилось. Там только обои перекрашивают и требования к железу поднимают.
В Линуксе такое возможно только при серьезном железном крахе (например, из-за блоба Невидии). Но я с таким никогда не сталкивался.
А вот уход в своп - это совершенно не проблема. Просто убиваешь процесс. Если жалко данные, но синкаешься, ловишь момент отвисания - "сохраняешься".
Ещё можно хардкорно ребутнуться по SysRq+B, но это плохая практика, и тут ни к чему. Разве из бесконечного цикла (например, в своей программе) выйти.
Я читал про SysRQ, но не включал это. В надежде на надёжность как у Windows XP! Это была самая длительно используемая мной версия. Потом немного 7, и 8.1. Если бы я очень страдал от этого, я бы всё настроил, не сомневайся. Но сейчас я стараюсь не допускать своппинга. И вообще мне уже лень всё это настраивать, старею.
Ну у меня RAM был на 4GB. А я в игры люблю поиграть. Запустишь какую-нибудь "Mindustry", "Rise To Ruins" или "Necesse", а они все на Java с Garbage Collector-ом, забудешь покрутить его настройки, и в один прекрасный момент вся память тю-тю. Потом докупил ещё планку, стало 8GB, и про своп совсем забыл, а настройки остались.
> Вряд ли в новых что-то изменилосьВ Windows 10 и 11 теперь есть не только файл подкачки (swap), как раньше, но и сжатая память (zram). Но, конфигурировать этот zram там нельзя, только выключить и включить, а сколько и чему выделять, решает только сама система
Помню, что такое и на Семёрке можно было сделать. Причем, выбрав зарезервированный объем. Но, кажется, без сжатия. Что-то типа tmpfs в Линуксе.
Простите за вопрос - Зачем вам 20000 пакетов в кэше? Не хотите тормозов, просто удалите их или вы собираетесь систему на 2 года назад откатывать, но для этого есть архив пакетов на арче.
Где ты взял про 20000 пакетов? Это твои фантазии от незнания? Я писал про 20000 файлов, а не про пакеты.
Неправда. Пользовался Арчем на HDD (750GB), тысячи пакетов в кэше (тяну через -Sw), куча NoExtract= в конфиге (локаль, доки и спец-хаки). Полёт нормальный. Упирается в скорость чтения диска, и всё равно работает (существенно) быстрее других пакетников (пробовал DNF, Apt, Nix, Flatpak).
На дешёвом китайском SSD - молниеносен.
Также, в РФ временами замедляют некоторые зеркала (точнее CDN-ки). Проблема решается через https_proxy, несколькими одновременными соединениями в конфиге или выбором другого зеркала. Но это уже проблема не пакетника, очевидно.
> Неправда. Пользовался Арчем на HDD (750GB), тысячи пакетов в кэше (тяну через
> -Sw), куча NoExtract= в конфиге (локаль, доки и спец-хаки). Полёт нормальный.
> Упирается в скорость чтения диска, и всё равно работает (существенно) быстрее
> других пакетников (пробовал DNF, Apt, Nix, Flatpak).
> На дешёвом китайском SSD - молниеносен.
> Также, в РФ временами замедляют некоторые зеркала (точнее CDN-ки). Проблема решается через
> https_proxy, несколькими одновременными соединениями в конфиге или выбором другого зеркала.
> Но это уже проблема не пакетника, очевидно.Нет проблемы с загрузкой пакетов из сети, здесь я поднимал темы только про десятки тысяч мелких файлов на HDD и многими NoExtract=. Я не знаю, возможно мои NoExtract= какие-то волшебные, или более сложные чем твои, или какие-то пакеты слишком "хитрые". Но когда нпосле надписи "Upgraded 253/253" pacman начинает грузить процессор и думать минуты, это явно не про загрузку пакетов из сети и не запись файлов на HDD или SDD.
> Но когда нпосле надписи "Upgraded 253/253" pacman начинает грузить процессор и думать минуты, это явно не про загрузку пакетов из сети и не запись файлов на HDD или SDD.Либо какой-то хук (какой - будет видно в выводе), либо синхронизируется запись на диск (ядро не пишет на диск сразу, а накапливает очередь).
Если хук, стоит проверить нет ли каких-то ошибок в журнале. (journalctl -b -p4)
Если диск, то диск. Попробуй оптимизировать его. Например, монтируй его с noatime в /etc/fstab. (https://wiki.archlinux.org/title/Improving_performance#Stora...)У меня на HDD был LUKS2 (serpent), а на нём ещё Btrfs со сжатием (zstd). Ноут был 10+-летней давности, дешевый-бюджетный. И никаких проблем не было. И ЦПУ со сжатием/шифрованием справлялся. И диск пел-скрипел. Среднее обновление минут 10 занимало с учётом времени загрузки - около 2GB пакетов по сети. Для сравнения, там же стоял flatpak с десятком пакетов, и он обновлялся дольше.
Но, в сравнении с SSD, тот, конечно, ощущается очень медленным. SSD просто летает, за счет очень быстрого чтения файлов, в т.ч. из архивов (распаковка пакетов), и при проверке хэшей (pacman сверяет сигнатуры пакетов после загрузки).
Изначально все разделы с noatime в fstab.
Да я не страдаю с моим ноутом и Арчем на нём. У меня только раздел /var на HDD, система на SSD. Мне просто весело наблюдать здесь как хвалят такую крувую примитивную программу!
> а я вот смеюсь над тем, как вы защищаете кривое примитивное ПО.
> Сам 10 лет страдает, пользуясь этим кривым и примитивным ПО
> Еще и специально /var вынес на хдд, чтобы сделать себе больнее
> при каждом незакешированным файловой системой обращении к этим даннымДело не в ФС. А в механизме маппинга файлов в памяти. Если ты трогал дефолтный vm.swappiness руками, то сам себе злой буратино.
https://wiki.archlinux.org/title/Swap#Swappiness
В общем - это скрытый убийца вашего HDD. Он плодит тысячи мелких файлов, вместо базы данных в одном файле, а затем мучает ваш HDD "полезной" работой по чтению этих мелких файлов. Ну а чо, с кучей мелких файлов проще написать программу! И это очень "красиво"!
> Он плодит тысячи мелких файлов, вместо базы данных в одном файлУ него буквально одна бдшка на каждый репозиторий, всё остальное - это сами тарболы пакетов. Что ты несёшь?
Я "несу" то, что ты понять не можешь из моего первоначального сообщения. HDD занимается поиском мелкий файлов по всему разделу. Это ты называешь "одна бдшка на каждый репозиторий"? Загляни уже наконец в /var/lib/pacman/local.
ну и что там такого страшного? каталоги по именам пакетов, в каждом аж ТРИ файла
"Страшного" там действительно ничго нет. Но вот только "быстрый менеджер пакетов" превращается в тормоз при массовом сканировании этих 22139 файлов, размещённых на разделе ext4 на HDD.
Среднее время доступа HDD HGST Travelstar 5K1000 - 12 мс при чтении.
Рассмотрим самый худший случай, когда первое чтение каждого файла и директории производится не из кэша ФС и требует перемещения головок HDD. 22139 * 12 мс = 265668 мс = 265.668 секунд = 4,5 минуты. В общем до 4 с половиной минут требует этот "быстрый" менеджер пакетов на чтение этой своей "супертехнологичной" "одной бдэшки".
Базы лежат в /var/lib/pacman/sync
```
$ ls /var/lib/pacman/sync
core.db extra.db multilib.db
```
Что там у тебя 4 минуты читается ("в худшем случае") я даже не знаю.
> Что там у тебя 4 минуты читается ("в худшем случае") я даже не знаю.Ты это серьёзно? Или ты тролишь? Ну и если ты gzip-нутые тескстовые файлы называешь "базами", обращая внимание на суффукс .db, то я не вижу с тобой смысла далее разговаривать. Протри глаза ацетоном и найди уже в моих предыдущих ссообщениях упоминание директори /var/lib/pacman/local и куски этих "баз" в тысячах отдельных файлов внутри субдиректорий.
В локах хранится метаданные об установленных пакетах, твой хдд убогий не будет перечитывать их все сразу примерно никогда, а только при установке/обновлении конкретного пакетаPS Попей валерьянки
Все сразу это худший теоретический случай. А так на моих 5 с половиной тысяч пакетов у него хорошо получается тормозить больше минуты при посиске принадлежности файла пакету. Выпей пургену.
> Все сразу это худший теоретический случай. А так на моих 5 с
> половиной тысяч пакетов у него хорошо получается тормозить больше минуты при
> посиске принадлежности файла пакету. Выпей пургену.Есть люди которые любят страдать и винить в этом других, хотя страдание — их личный выбор.
На ноуте 6-летней давности:
❯ echo 3 | sudo tee /proc/sys/vm/drop_caches
❯ time pacman -Qo /usr/bin/zsh
/usr/bin/zsh is owned by zsh 5.9-5
pacman -Qo /usr/bin/zsh 0.04s user 0.09s system 31% cpu 0.410 total
> На ноуте 6-летней давности:
> ❯ echo 3 | sudo tee /proc/sys/vm/drop_caches
> ❯ time pacman -Qo /usr/bin/zsh
> /usr/bin/zsh is owned by zsh 5.9-5
> pacman -Qo /usr/bin/zsh 0.04s user 0.09s system 31% cpu 0.410 totalДай угадаю, ты устанавливал /usr/bin/zsh одним их первых пакетов, да? Хахаха! Ну ты шутник! Для этой шутки твой линукс слишком тормозит. :D
> Дай угадаю, ты устанавливал /usr/bin/zsh одним их первых пакетов, да? Хахаха! > Ну ты шутник! Для этой шутки твой линукс слишком тормозит. :Dдля упоротых
strace -e trace=open,openat,openat2 pacman -Qo /usr/bin/zshopenat(AT_FDCWD, "/var/lib/pacman/local/7zip-25.01-1/files", O_RDONLY) = 4
openat(AT_FDCWD, "/var/lib/pacman/local/a52dec-0.8.0-2/files", O_RDONLY) = 4
... пропущена херова куча пакетов ...
openat(AT_FDCWD, "/var/lib/pacman/local/zram-generator-1.2.1-1/files", O_RDONLY) = 4
openat(AT_FDCWD, "/var/lib/pacman/local/zsh-5.9-5/files", O_RDONLY) = 4
/usr/bin/zsh is owned by zsh 5.9-5
+++ exited with 0 +++
по алфавиту перебираются. специально для тебя выбрал пакет на букву z
> по алфавиту перебираются. специально для тебя выбрал пакет на букву zУ тебя какой-то иопланетный HDD со средним временем поиска приблизительно 0 миллисекунд? Или ты предварительно "случайно" оптимизировал расположение читаемой информации на HDD, что бы попасть в последовательное чтение секторов? Если ты не слышишь как головки HDD перемещаются, то кого ты хочешь обмануть? Проблема будет и у тебя, когда ты специально разбросаешь все эти файлы по поверхности диска. Вот тогда среднее время поиска неизбежно даст тебе в сумме много секунд.
> У тебя какой-то иопланетный HDDЯ нигде не писал, что у меня hdd. Вообще не понимаю зачем их использовать, кроме nas и файлопомоек.
Сейчас ssd, хотя бы небольшой под систему, может купить школьник, экономя на обедах, а студент, подрабатывающий в доставке, заработает на nvme терабайтник за два-три дня.
>> У тебя какой-то иопланетный HDD
> Я нигде не писал, что у меня hdd. Вообще не понимаю зачем
> их использовать, кроме nas и файлопомоек.
> Сейчас ssd, хотя бы небольшой под систему, может купить школьник, экономя на
> обедах, а студент, подрабатывающий в доставке, заработает на nvme терабайтник за
> два-три дня.Хаха! И с какой целью ты здесь опубликовал свои измерения тогда? Похвастаться? Ты думаешь я такой тупой, что не знаю как работает SSD? У меня система 10 лет уже на SSD стоит. В то время ты наверно в школу только пошёл, когда я купил этот ноут. У меня раздел /var только на HDD.
> по алфавиту перебираются. специально для тебя выбрал пакет на букву zЯ не работал с этими новомодными HDD с черепичной записью (с большим кешем). Может у тебя такой?
> gzip-нутые тескстовые файлыКоторые распаковываются в памяти.
Расскажи это директории /var/lib/pacman/local, когда она распухает от установленного всего в системе. Потом пакман тупит как хз что. Да, я про HDD. И не надо рассказывать, что теперь везде должны стоять SSD.
Не хочешь - не надо, сиди на блиннице, ссзб.
Насколько я понял там находятся архивы установленных пакетов. Нужно чтобы при переустановке пакета сам пакет не скачивался из Сети, а сразу брался и этого каталога.Если у тебя система нормально работает нельзя ли их просто удалить?
pacman -Scc. И они все равно не читаются каждое использование, база данных у alpm есть и она шустрая (в отличие от dpkg, хех). Понятия не имею, о чем этот фантазер рассказывает.
И ты тоже неверно понял.
Ты неверно понял. Видимо ты очень "знающий" пакманист, чтобы судить о быстроте пакмана.
> Насколько я понял там находятся архивы установленных пакетов.Нет, там вспомогательная информация, распакованная из пакетов. Сами пакеты скачиваются в /var/cache/pacman/pkg/.
> HDDНа WD Black (1Tb, 7200) проблема не воспроизвелась - полное обновление (кеды+либы+веодроид студио (/opt смонтирован на SSD)) заняло около 7 минут с учётом выкачки гигабайта (1.4 Гб, если быть точным) архивов.
~> pacman -Qq | wc -l
1484Вывод smartctl
=== START OF INFORMATION SECTION ===
Model Family: Western Digital RE4
Device Model: WDC WD1003FBYX-01Y7B1
Serial Number: WD-WCAW35739072
LU WWN Device Id: 5 0014ee 20888905f
Firmware Version: 01.01V02
User Capacity: 1 000 204 886 016 bytes [1,00 TB]
Sector Size: 512 bytes logical/physical
Rotation Rate: 7200 rpm
Device is: In smartctl database 7.5/5706
ATA Version is: ATA8-ACS (minor revision not indicated)
SATA Version is: SATA 3.0, 3.0 Gb/s (current: 3.0 Gb/s)
Local Time is: Sun Nov 2 17:34:00 2025 MSK
SMART support is: Available - device has SMART capability.
SMART support is: EnabledКупи себе нормальный hdd, твой треш на 5400 из начала 10х желательно прогнать викторией из-под живого образа с флешки, там явно уже износ поверхности
Тебе не кажется что ты слишком самоуверен? Гдя я писал что будет проблема при обычном обновлении? Я написал что если только чуть-чуть использовать его, то быстрый, спору нет. А вот теперь ты напиши для каждого установленного пакета правила NoExtract= для вырезки всех ненужных локалей и попробуй обновить все пакеты. И ещё попробуй хоть раз в жизни делать запросы pacman-у на например, поиск принадлежности какого-либо файла пакету. И всё это на пустой файловый кэш. А потом поговорим. Но ты же этого делать не будешь, я уверен. Зато рекомендовать мне менять железо ты горазд. Да моё железо в 1990-ых было пределом мечтаний, компьютером из рая. На нём всё ПО того времени работало бы со скоростью света. Но пришли в наш мир такие как ты и начали учить дедов менять железо из-за криво написанной программы, которую они любят ирррационально. Абсурд!
>[оверквотинг удален]
> ***
> - Аноны, а почему когда вы едите - у вас ран нету?
> - Так мы вилкой едим твёрдое, ложкой - жидкое, а ножом - только мясо режем.
> - Сажи вилкоедам! Вот вам нигры, ложкое**ы!
> ***
> - Ананас, подскажи, чем есть? Половником - неудобно, с шампура - только шашлык могу. Ложек и вилок не предлагать!
> - Ловите наркомана.
> ***
> - Ну анончики, ну подскажите, почему, когда ем с ножа - режусь?
> - Иди уже н***й, я обедаю.
> А вот теперь ты напиши для каждого установленного пакета правила NoExtract= для вырезки всех ненужных локалейВообще-то, NoExtract= ускоряет работу pacman, так как распаковывает меньше файлов и, следовательно, меньше пишет на HDD.
>> А вот теперь ты напиши для каждого установленного пакета правила NoExtract= для вырезки всех ненужных локалей
> Вообще-то, NoExtract= ускоряет работу pacman, так как распаковывает меньше файлов и, следовательно,
> меньше пишет на HDD.Я не знаю на самом деле как реализованы NoExtract= в pacman. Ты уверен что твоё написанное соответствует реальности? Я вот могу предположить что теоретически (в зависимости от "гениальности" автора) pacman может распакововыать все файлы, а потом с помощью регулярных выразений .реализованных на Python (чтобы жрать процессор), удалять излишне распакованные файлы :D Ну а чо? тоже "алгоритм"!
> pacman может распакововыать все файлы/* if a file is in NoExtract then we never extract it */
if(_alpm_fnmatch_patterns(handle->noextract, entryname) == 0) {
# ...
archive_read_data_skip(archive);
return 0;
}
(https://gitlab.archlinux.org/pacman/pacman/-/blob/master/lib...)> реализованных на Python
На Си: и pacman, и libalpm, и libarchive.
Ну тогда скорее всего это не из-за NoExtract.
Кстати, "мой треш на 5400 из начала 10х" ещё твой суперпуппердуппер HDD от WD переживёт.
Линукс сам по себе в разные годы являлся убийцей ХДД. На уровне драйверов.
Продолжи мысль, когда вернешься после перезагрузки Дрисяточки.
Я вернулся. И что тут продолжать?
Под систему сейчас HDD ставить это совсем экономия на спичках, а SSD не изнашивается от чтения.
> По умолчанию включена обязательная проверка по цифровой подписи для пакетов и файлов с БД репозиторияТо есть до этого не проверяли? Молодцы чо. Первые в классе.
Бох знает, что там написано. Помню, ещё при мне вводили обязательную проверку подписей пакетов. Давненько это было. Может сие нечто другое, чего не разумею уже.
Проверяли, базу - опционально, пакеты - принудительно. Теперь всё будет принудительно.
Пацаны а когда он в репозиторий попадёт? У меня пока версия 7.0.0.r6.*
Ты куда-то торопишься?
Но, ты всегда можешь подключить core-testing - он скоро будет там
> Пацаны а когда он в репозиторий попадёт? У меня пока версия 7.0.0.r6.*Вероятно, когда все зеркала будут готовы к обязательному подписыванию баз.
> По умолчанию включена обязательная проверка по цифровой подписи для пакетов и файлов с БД репозитория (настройка SigLevel выставлена по умолчанию в значение "Required"). Отсутствие подписи или некорректная подпись теперь будет по умолчанию приводить к завершению с выводом ошибки.Только сейчас?
Ну...да, это ж тебе не общедоступная бета копроративного дистро для workstation.
Раньше ты сам мог включить. (Если бы нашел зеркало, которое это поддерживало.)
То есть ставя какой-то htop мог залететь тупо малварь?
> То есть ставя какой-то htop мог залететь тупо малварь?С пакетом - нет. Он подписан.
С базой - нет, если скачивать по https с надежного зеркала. Вероятно, да, если в libarchive есть уязвимость, которую можно проэксплуатировать, и есть возможность подменить базу по пути (http) или на сервере зеркала (он взломан). Правда, с некоторых пор в pacman используется sandboxing, но, вроде, он только на загрузку распространяется, не на распаковку.
А вот задержать обновления так можно. Впрочем, зеркалу для этого не обязательно подменять базу. Можно просто не обновляться. На какое-то время этого хватит. Помню, был с случай с зеркалами из РФ.