Состоялся (https://lists.archlinux.org/pipermail/arch-dev-public/2016-J...) релиз пакетного менеджера Pacman 5.0 (https://www.archlinux.org/pacman/), применяемого в дистрибутиве Arch Linux. Из изменений (https://projects.archlinux.org/pacman.git/tree/NEWS?h=v5.0.0) можно выделить:
- Возможность подключения обработчиков, вызываемых перед или после выполнения транзакции;
- Поддержка операций "sync" и "read" для баз данных .files и возможность поиска файлов в синхронизированных репозиториях;
- Поддержка проверки целостности локальных и синхронизированных баз;
- Обеспечено выравнивание вывода описаний пакетов в соответствии с требованиями текущей локали;
- Добавлена проверка соответствия внутренней версии пакета с версией, указанной в БД;
- Улучшена обработка сигналов и чистка файлов с блокировками;
- Добавлен новый парсер файлов конфигурации;
- Началась работа по выделения функциональности утилиты makepkg в разделяемую библиотеку функций libmakepkg.URL: https://lists.archlinux.org/pipermail/arch-dev-public/2016-J...
Новость: http://www.opennet.me/opennews/art.shtml?num=43791
> Возможность подключения обработчиков, вызываемых перед или после выполнения транзакции;Ну наконец-то!
>> Возможность подключения обработчиков, вызываемых перед или после выполнения транзакции;
> Ну наконец-то!А зачем?
Видимо перезапускать службу после обновления бинарника.
*компьютертам системд.
*дурак
systemctl stop service
systemctl start service
> *дурак
> systemctl stop service
> systemctl start servicerestart же, ну.
А я давно там не был, потерял хватку. Пригрелся на Фре.
И на фре тоже рестарт
например, чтобы не обновлять кэш шрифтров после каждого обновлённого/установленного/удаленного шрифта, а только после последнего
Да он и раньше так не делал. Правда, если ставить только шрифты, а не разнобойные пакеты...
Ждем традиционных для deb пакетов сообщений "при установке пакета функция заверщилась с ошибкой, перепишите функцию вручную и подсуньте в пакета, а то вся пакетная система останется застопоренной"
Это же не apt-get(и на основе его других) тут такого не будет...
Я уже давно не пользователь арчлинукса, но я помню те адские муки, которые мне пришлось перенести после выхода pacman 4.0. Хотя тут изменений меньше, вроде всё должно быть проще
Нормально оьнова прошла. Осталось yaourt с его package-query подновить под пакман только. Пока грязным хаком обошёлся, отредактировав pkgbuild и сделав симлинк на libalpm.so > libalpm.so.9
Работаем над этим.
Можно пока установить гит-версии (package-query-git, yaourt-git) из AUR - должно работать.
Я посмотрел на гитхабе и не увидел никаких изменений касаемых нового пакмана для package-query. Подумал, значит нет ничего там в git версии.
Есть issue для трекинга - https://github.com/archlinuxfr/package-query/issues/90
Пока же я подтверждаю, что после пересборки package-query с новой версией libalpm базовая фунцкциональность не ломается.
нах нужен, вали на манджару свою.... Если makepkg не осилило с rsync....
Кому он нужен, ваш yaourt - pacman и так почти идеально работает(правда у меня почему-то идеально)!
> Я уже давно не пользователь арчлинукса, но я помню те адские муки,
> которые мне пришлось перенести после выхода pacman 4.0. Хотя тут изменений
> меньше, вроде всё должно быть прощеС вводом подписей были муки и иногда еще вылезают, если долго не обновляться. Больше с пакманом проблем не помню
pacman-key --refresh-keys
Арчик был хорош, когда имел бздевый /etc/rc.conf и KISS в целом. А теперь это просто помойная яма. А почему это у меня фейковое ethernet соединение с левым адресом висит, когда туда даже кабель не подключен? А потому что sysctl enable <этот интерфейс> и ниипёт и будут марсиане в отключенный коннектор долбиться. Это что помню из смешного.
systemctl, конечно же. Главное, теперь в них не запутаться.
> Арчик был хорош, когда имел бздевый /etc/rc.confАрчик был говно, в те времена когда там был этот rc ..
и как только его (rc) оттуда убрали (сделали нормальный systemctl) -- вот только тогда Арчик и стал нормальным дистрибутивом.
> KISS в целом
простыня глючных скриптов (забагованных относительно поведения параллельного старта) -- является совсем не KISS
Ппкс.
Systemd не дураки делали.
Он очень строен и красив.
> Ппкс.
> Systemd не дураки делали.
> Он очень строен и красив.Функции на 500 строк кода, принимающие 15 аргументов — это стройно и красиво?
> Функции на 500 строк кода, принимающие 15 аргументов — это стройно и красиво?Вот извините, конечно, но качество кода (не в плане архитектуры, а в плане стиля) в systemd как раз хорошее.
Когда я последний раз просил продемонстрировать "функцию на 500 строк" мне показали какой-то switch с кучей case. Заменить это они хотели, наверное, виртуальными функциями и 500 разными классами, каждый из которых реализовал бы один case.
Можете продемонстрировать ваше утверждение? Например, показав функцию с 15 аргументами?
Вся ненависть к systemd связана с политикой навязывания и непродуманным поведением, но никак не с качеством кода.
> Вот извините, конечно, но качество кода (не в плане архитектуры, а в плане стиля) в systemd как раз хорошее.
strcpy(mempcpy(mempcpy(r, f, a + 1), i, b), e);
...
if (!path_is_absolute(option+7))
...
arg_header = strdup(option+7);
...
ret = new(char, (e - slice) + 1 + strlen(name) + 6 + 1);
Ага, прям офигительное.
> strcpy(mempcpy(mempcpy(r, f, a + 1), i, b), e);Из контекста не вырывайте, пожалуйста. Конечно, в этом случае значительно читабельнее было бы что-то типа
strcpy(mempcpy(mempcpy(function_result, file_name, character_before_last_slash_index_in_file_name + 1), new_file_name, last_slash_index_in_new_file_name), file_extension);
или
char *function_result_directory_path_end = mempcpy(function_result, file_name, last_slash_index_in_file_name + 1);
char *function_result_directory_and_basename_path_end = mempcpy(function_result_directory_path_end, new_file_name, last_slash_index_in_new_file_name);
strcpy(function_result_directory_and_basename_path_end, file_extension);
а ещё лучше
char *function_result_directory_path_end = copy_memory_slice_and_return_pointer_to_the_end(function_result, file_name, last_slash_index_in_file_name + 1);
char *function_result_directory_and_basename_path_end = copy_memory_slice_and_return_pointer_to_the_end(function_result_directory_path_end, new_file_name, last_slash_index_in_new_file_name);
copy_string_to(function_result_directory_and_basename_path_end, file_extension);
но это вам в яву.
Не могу сказать без просмотра всей функции, но наверняка у каждой переменной есть смысл, очевидный, если смотреть всю функцию в целом. Например, r - result, f - filename, e - extension, и т.д. И лично мне удобнее прочитать этот однострочник, чем то, чем его пытаются обычно заменить (см. выше).
>> strcpy(mempcpy(mempcpy(r, f, a + 1), i, b), e);
> Из контекста не вырывайте, пожалуйста.https://github.com/systemd/systemd/blob/fdb4ee00f022863ceee9...
int unit_name_replace_instance(const char *f, const char *i, char **ret) {
const char *p, *e;
char *s;
size_t a, b;assert(f);
assert(i);
assert(ret);if (!unit_name_is_valid(f, UNIT_NAME_INSTANCE|UNIT_NAME_TEMPLATE))
return -EINVAL;
if (!unit_instance_is_valid(i))
return -EINVAL;assert_se(p = strchr(f, '@'));
assert_se(e = strrchr(f, '.'));a = p - f;
b = strlen(i);s = new(char, a + 1 + b + strlen(e) + 1);
if (!s)
return -ENOMEM;strcpy(mempcpy(mempcpy(s, f, a + 1), i, b), e);
*ret = s;
return 0;
}> strcpy(mempcpy(mempcpy(function_result, file_name, character_before_last_slash_index_in_file_name + 1), new_file_name, last_slash_index_in_new_file_name), file_extension);
не передергивайте.
> не передергивайте.Ну давайте расскажу, как _я_ воспринимаю этот код.
30 секунд просмотра функции, и я понимаю следующее: f обозначает filename, i - instance, ret - возвращаемое значение. Имена a и b ничего не обозначают (но по коду далее видно, что они хранят длины соответственно первой и второй незаменяемых частей юнита).
Сам я systemd не пользовался, поэтому не знал, для чего нужна @ в именах юнитов. Добавим сюда ещё 5 минут гугления, какой формат имеет имя юнита, и чтения (точнее, чтения первого абзаца, содержащего символ @) http://man7.org/linux/man-pages/man5/systemd.unit.5.html (тот, кто правит код systemd имхо должен знать ту часть, что необходима для понимания данного фрагмента).
Теперь также ясно, что e - extension, p - либо part (заменяемая часть, типа tty3 с ведущим символом @), либо pointer, s - просто string, так же как циклах принято делать итерацию по i (от integer).
Из имени функции я предполагаю, что она должна заменять инстанс юнита f (на который указывает p+1) инстансом i.
"s = new" - выделение памяти.
А пример со вложенным вызовом mempcpy взят из man mempcpy и может считаться стандартным.
Возможно, я не прав и сказывается собственный сишный опыт, но для меня понять, что делает конкретно озвученная ранее строка, не проблема. При этом мне не надо постоянно переходить по разным методам, как это принято в java и c++ , у меня вся функция помещается на одном экране. И лично для меня идентификаторы p и e выглядят более "различными визуально", чем, например, "unit_name_part и unit_name_ext".
Я бы сказал, что это пример каноничного C, где идентификаторы сокращаются насколько это возможно (но не меньше), по этой же причине при итерации вы пишете "for (i=0; i<10; i++)", а не "for(index=0; index<10; index++)".
>забагованных относительно поведения параллельного стартавот ты и спалился школьник,не юзал ты арчик во времена бздешного инита.
Вот ты и запалился бздун
Очередной ненавистник системд., а не " арчик был тогда хорош". Признайся.
А ещё хрень в том, что поначалу системды действительно с холодного старта летало. Но и глючило его тогда не кисло. А вот сейчас уже у меня бздя грузится с арчем равноценное время. Только оно (системды) до сих пор не всегда умеет все службы корректно останавливать при шатдауне, очень торопится быстрым казаться хотя бы уже только на выходе.
Дык просто прибивает службу и все, ну а как вы хотели? Там скриптов нет чтоб индивидуально подумать над каждым сервисом как его лучше остановить, тупые unit файлы.
> Дык просто прибивает службу и все, ну а как вы хотели? Там
> скриптов нет чтоб индивидуально подумать над каждым сервисом как его лучше
> остановить, тупые unit файлы.Сервис сам должен думать как ему лучше останавливаться при получении команды килл.
> Сервис сам должен думать как ему лучше останавливаться при получении команды килл.Это как до последнего времени в пульсе?
http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/7.0/
> Changes at a Glance
> Exiting due to SIGTERM isn't considered a failure
А я думал, что systemd отправляет команду в ядро, про завершение сервиса, но анонима уже было не остановить...
> А я думал, что systemd отправляет команду в ядро, про завершение сервиса,
> но анонима уже было не остановить...Не команду, а сигнал, и не ядру, а процессу сервиса.
> А ещё хрень в том, что поначалу системды действительно с холодного старта
> летало. Но и глючило его тогда не кисло. А вот сейчас
> уже у меня бздя грузится с арчем равноценное время. Только оно
> (системды) до сих пор не всегда умеет все службы корректно останавливать
> при шатдауне, очень торопится быстрым казаться хотя бы уже только на
> выходе.Виндовс 7 загрузится быстрее, но ты же не будешь пробовать, ибо веришь - Арчик с системд ест БОГъ.
> Виндовс 7 загрузится быстрее, но ты же не будешь пробовать, ибо веришь
> - Арчик с системд ест БОГъ.Я могу на работе проверить, если будут корректные инструкции про сравнению.
> Арчик или даже бздя загрузятся быстрее, но ты же не будешь пробовать, ибо веришь
> - Виндовс 7 с анальными зондами ест БОГъ.
https://www.youtube.com/watch?v=UjXtRz0GfAI
Так быстро, что вообще, особенно вырубается
> Очередной ненавистник системд., а не " арчик был тогда хорош". Признайся.Они выпилили rc.conf еще до появления сисиемд же для "унификации ли чего-то такого"
> Арчик был хорош, когда имел бздевый /etc/rc.conf и KISS в целом.Да разрабы забили болт на свою идеологию KISS. И на кой мне нужен дистрибутив который декларирует одно, а делает другое?
> Арчик был хорош, когда имел бздевый /etc/rc.conf и KISS в целом. А
> теперь это просто помойная яма. А почему это у меня фейковоеСвятая истина, и вот почему
Объяснение №1:
новость про pacman5 есть только тут, но нет ни на archlinux.org ни на archlinux.org.ru в разделе новости, гугл тоже молчит:
https://www.google.ru/?gfe_rd=cr&ei=z5utVv_7ING86ASnmoGYAw#n...Объяснение №2:
К примеру вы захотели попользоваться принтером, который 100% работает в лиунксе, как правильные люди вы начали читать archwiki:
https://wiki.archlinux.org/index.php/CUPS
В которой ОЧЕНЬ не явно говорится про то, как запустить службу, скажем так - если вы этого не делали уже, то не сможете сделать скорее всего, потому что вам НУЖНО знать про systemctl, если вы до этого сидели на винде или минте - хрен что у вас получится.
Казалось бы ну напишите вы в вики строчку, что мол чтобы запустить службу cups вам нужно написать команду:
systemctl start org.cups.cupsd (очень интуитивно-понятное название, прям как systemctl start sshd, правда ???)
Нет бл**ь, вместо этого мы напишем в вике так:
Start and enable org.cups.cupsd.service.
Кстати, это если у вас есть интернет, и иксы, чтобы сайт открыть..ну ок... если у вас есть интернет и lynx, а может это стенд-элон-системный блок и принтер в школе ?
Без интернета никакой линукс не настроить и софт не поставить, увы.
А в арчике еще может быть openrc, кстати. Арчфикик не без недостатков, но ничего лучше еще не придумали, юзаю и для других дистрибутивов не редко.
По вашей логике Debian это не Linux?
> Без интернета никакой линукс не настроить и софт не поставить, увы.свой гит сервер + свой фтп и клал я на отключение инета (всё дополняется с чужих машин с доступом в инет) .
зы . без инета венда/огрызок ничем не лучше (в венде даже кодеков нету в отличии от многих линуксовых сборок)
>> Без интернета никакой линукс не настроить и софт не поставить, увы.
> свой гит сервер + свой фтп и клал я на отключение инета
> (всё дополняется с чужих машин с доступом в инет) .
> зы . без инета венда/огрызок ничем не лучше (в венде даже кодеков
> нету в отличии от многих линуксовых сборок)На машину с виндой без доступа в интернет гораздо проще притащить софт и поставить. Какие пляски придётся проводить с линуксом - чёрт знает (что-то что-то apt-cdrom, про который я уже ничего не помню).
pacman -U
Это только в России проблема с интернетом, ибо средневековье. А разработчики линуксовых программ живут в основном в цивилизованных государствах. Наверно у них есть причины распространять программы именно таким образом, но все таки бросается в глаза демагогия не с линуксом, а с распространителями программ следовательно к ним и вопросы.
Эти «Start» и «enable» являются гиперссылками, которые ведут к статье, разъясняющей *общие* принципы работы с сервисами. Вики — не набор инструкций, иначе бы по ссылке выше была только одна строчка: `sudo sh -c "$(curl https://wiki.archlinux.org/index.php/CUPS.sh)"'
> это если у вас есть интернет, и иксы, чтобы сайт открытьИ Arch Linux на дискетах, присланных по почте из райцентра.
Джва года ждал!
чем он лучше dnf?
ну как минимум не выжирает всю память при обновлении.
Быстрее раз в пицот?
Не угадал. Ещё?
тем, что dnf — не пакетный менеджер
Кто объяснит, почему в арчике в последнее время обновления ядер доходят до stable за месяц-два. Ведь раньше этот процесс дней 10 занимал.
> Кто объяснит, почему в арчике в последнее время обновления ядер доходят до
> stable за месяц-два. Ведь раньше этот процесс дней 10 занимал.По таким вопросам я общаюсь с Аароном или Алланом.
Многовато багов стало в последних релизах ядер.
Ну так в багтрекере относительно ядра немного багов
Многовато багов стало в последних релизах видео дров - все жалуются.
игры не играют и стим не ходит и амд в блэке...
Не релиз состоялся, а pacman 5.0 помещён в [testing]. Поэтому и нет объявления на оф. сайте.
Так вот кто украл машину времени с лора
Куда он вышел??? Testing еще!
> Куда он вышел??? Testing еще!В тестинг попадают все пакеты, которые авторы посчитали стабильными. Понимайте разницу. Это как я к примеру выложу в свой репозиторий, с названием unstable, какой-нибудь Debian 8.3. Ну так от названия репозитория дебиан не станет анстеиблом. Пакеты в тестинг кидают для первоначального тестирования, чтоб не вызвать кучу проблем на всех машинах по всему миру в случае чего. Обычно там чаще всего фиксят что-то специфичное для кого-то, но не страшное прям для всех. Я написал программу, сказал она стабильно работает у меня, мы с друзьями и еще парой мейнтейнеров попробовали её, не нашли косяков, и кинули в тестинг, чтоб не все, но уже более широкий круг обновился и указал недостатки. Стабильна она. Не бета и не альфа, не релиз-кандидат. В убунте тоже так делают.
Тем не менее, официального релиза ещё не было.
Исключение, как сугубо арчевский пакет.
Видимо остались недочеты, или их вообще нет и релизнулись сходу с гит-хаб, и подождут недельку для тестирования... Кто вообще на арче в stable сидит, в чем смысл?
Пакман рулит, самый класный пакетник. Гибкий, быстрый и удобный. В отличии от существующих монстров
Сломали pacman -Syupacman 5.0.0-1 was pushed to core today. package-query 1.7-1 requires pacman<4.3, so it blocks `pacman -Syu`.
Выше же написали как обойти проблему с помощью симлинка!... А пакман действительно хорош!!! Быстр, прост... Возможно, когда-нибудь напишут универсальный пакетчик, в котором имеются симлинки с именами пакетных менеджеров всех (или наиболее популярных) дистрибутивов, а сама утилита бы определяла - на каком дистрибутиве какие опции, пути использовать и какие репы репать...
> Выше же написали как обойти проблему с помощью симлинка!... А пакман действительно
> хорош!!! Быстр, прост... Возможно, когда-нибудь напишут универсальный пакетчик, в котором
> имеются симлинки с именами пакетных менеджеров всех (или наиболее популярных) дистрибутивов,
> а сама утилита бы определяла - на каком дистрибутиве какие опции,
> пути использовать и какие репы репать...А, также, имелась бы возможность, к примеру, на Убунте использовать команду и опции pacman...
error: failed to commit transaction (conflicting files) . Отлично арчекоманда, просто молодцы. Уже неделю нихрена не работает. Сижу через вонючий Альтлинукс
Да ты, я смотрю, коллекционер синяков на лбу с нехилым стажем.
repo-add -f - не работает :-(
Мой любимый package manager. ^+^