LINUX.ORG.RU

DNF будет переписан на языке C

 


0

3

DNF — пакетный менеджер, используемый в дистрибутиве Fedora. Его предшественник Yum был полностью написан на Python, в DNF же на данный момент низкоуровневый функционал вынесен в отдельные C-библиотеки (hawkey, librepo, libsolv и libcomps).

Начиная с этого момента, код DNF будет постепенно переписываться на C в рамках отдельного проекта libhif; функционал hawkey уже влит в libhif.
Пока в libhif реализовано скачивание метаданных, разрешение зависимостей и исполнение RPM-транзакций; в будущем планируется доработка libhif для поддержки других базовых функций пакетного менеджера.

Внедрение libhif со встроенным hawkey ожидается к релизу Fedora 25.

>>> Подробности

★★★★★

Проверено: tailgunner ()
Последнее исправление: Wizard_ (всего исправлений: 3)

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

Похоже, что сложно выходило сразу. Наверно, избавлялись от Python 2 в репозиториях, чтобы остался только Python 3, быстрее было выполнить порт 2->3, а теперь, когда есть время, переписывать частями на C.

Deleted
()

...пакетный менеджер,
...будет переписан на языке C

Нет, я как раз совсем не хэйтер C в отличии от предполагаемого большинства комментаторов этого топика. Но место приложения «пакетный менеджер» - имхо это перебор. Не люблю это выражение, но «это каким же надо быть задротом что бы даже ++ не осилить»

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

Вот выразил моё мнение на 100%.

В баню этих задротов-цепепешников/валовцев и т.п. чудаков. Сишников подготовить быстрее. Да и сишка для компиляции требует меньше ресурсов, чем костыли вокруг.

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

На opennet писали, что совместимость с python2 есть и будет в переписанной версии

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

Не совсем понимаю. Второй питон ещё как минимум года четыре будет поддерживаться. Куда торопиться?

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

Сишников подготовить быстрее.

Грузчиков еще быстрее.

Да и сишка для компиляции требует меньше ресурсов, чем костыли вокруг.

Какая вообще разница, ты на телевизоре что ли компилировать будешь?

staseg ★★★★★
()

А почему не переписать на какой-нибудь функциональщине? Ведь там чистая математичка. Есть пакет у него есть множества: зависимостей, рекомендаций, конфликтов и надо посмотреть что из множеств уже стоит и что нужно добавить, а что будет мешать и как можно это обойти(множества альтернативных пакетов).

P.S. Чайник в функциональщине

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

Они не могли dnf сразу на C написать?

Нет и вот почему: с самого начала не было точно известно взлетит DNF (название намекает) или не взлетит. Как чистого рода эксперимент, его бессмысленно пытаться писать на языках с существенно более длинным циклом разработки. Сделать рабочий прототип на языке вроде Python для обкатки новых идей и выработки алгоритмов — это стратегически верное решение. Во-первых, это быстрее (batteries included), во-вторых, сопряжение с библиотеками на компилируемых языках даётся очень легко. В результате ты получаешь рабочее решение заметно быстрее, жертвуя при этом производительностью, «догнать» которую можно позже, когда и если проект получит одобрение, взлетит, будет получено доказательство корректности алгоритмов, нужное подчеркнуть, недостающее вписать. Например, при ограниченных человеческих ресурсах такой подход имеет смысл.

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

рекомендаций

Бэкенд не умеет.

как можно это обойти

Как в apt* предлагать пол-системы снести? Спасибо вот это точно не надо.

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

статически линкованные программы
win, mac, android

/0

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

Обычно apt предлагает несколько вариантов и пошаманив руками с некоторыми пакетами можно не сносить пол системы.

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

Если ты грузчиками решишь ту же задачу, вперёд. О результатах не забудь сообщить ЛОРу.

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

Deleted
()

Для меня, как юзера, это хорошо или плохо? Чем Python хуже С? Будет быстрее, чётче или что, не пойму? Или это просто способ лишний раз напомнить о себе («люди, я тут, если вы забыли!»)?

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

https://fedoraproject.org/wiki/Changes/Python_3_as_Default

Федорковцы же хотят Python3 as default. Вот и переносят всё. А потом и /usr/bin/python сделают как python3 по умолчанию. Хочется людям подготовиться заранее, пусть делают. Полезно же.

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

Это же хорошо. Сишку переписывать дороже, чем Python. Развитие будет размереннее, стабильнее. Чутка ускорение получишь.

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

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

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

Это понятно, вопрос был в том, что до прекращения поддержки второго питона ещё достаточно времени, и уж если собрались переписывать на другом языке, то какой смысл мигрировать на третий питон? Вот если бы это была единственная софтина, которая мешает избавиться от второго питона, тогда я бы ещё мог понять.

Kilte ★★★★★
()

Роскосмос тоже часто говорит что создаст свой айфон

dmxrand
()

DNF будет переписан на языке C
DNF

Что-то мне подсказывает, что они никогда это не закончат.

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

Работа стоит, а срок идет

В этом же весь смысл!

staseg ★★★★★
()

А вообще, похоже что после того как того чувака, который дописывал и мейнтейнил юм переехала машина, все стали тянуть одеяло на себя с этими беспрестанными переписываниями. Чем допустим юм не устроил? Кроме пыхтонг тормазит ололо. А серверная часть, формат хранения и передачи метаданных и тулзы для них тоже самоперепишутся на C или они остаются как были? А если остаются как были за счёт чего должно быстрее стать?

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

здесь должна была быть новость о переписывании portage на C

dnf имеет правильную архитектуру и не упирается в io.

A1
()

А нельзя было просто yum переписать на C? В чём вообще принципиальное отличие DNF от yum, кроме языка?

Хотя нашёл, что DNF форкнули от yum 3.4, так что может, его можно рассматривать как yum 4 :)

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

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

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

for fun, not prod

люди тренируются, и заодно код кидают в гитхаб, где новичок может подчерпнуть себе что-нибудь

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

dnf очень даже хорош
я думаю, что в степени убывания pacman > dnf(yum, одно и тоже по сути, только dnf побыстрее) > zypper > apt

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

Наоборот, очень даже хорошо :) Люди не страдают извращениями, а наоборот - наслаждаются... Не стОит им мешать :)

shkolnick-kun ★★★★★
()
Ответ на: комментарий от legolegs

Как многолетний пользователь федоры, скажу так: возмите уже apt-get, ёклмн.

Лорчую оратора. Всякая мелкая ерунда затрахала - то авторемув хочет стереть пол системы, то историю не посмотреть, сейчас вот половина команд вообще не работает на русской локали. Думал, устаканится со временем - но нет! Мы все перепишем и опять джва года будем приводить в божеский вид.

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

Как пользователь федоры, смигрировавший на нее с дебиана... Если возьмут, перейду куда-нибудь ещё. apt-get ужасен. В Debian вроде пилили cupt, но когда я в последний раз смотрел, он очень много чего не поддерживал.

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

Пока юм раздуплит зависимости уже забудешь, что ставил.

А вот мой опыт использования (центоси 5/6/7 и федоры вплоть до 19, емнип) указывает на то, что там в основном томозит как раз таки IO. Потому как эта фигота на каждый чих лазиет свои зеркала рефрешить, напоминая этим поведением дебилоидный subversion. А метаданных много и метаданные жирные. А протухают они за полтора часа. А во время этого ещё зеркала рандомно рсинкаются, и отдают 403, и мы бросаем и начинаем перекачивать со следующего, что ещё удлиняет ожидание ... и т.д.

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

просто что-то давно подобных тем не видно

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

Уверенность, что С++ отличается от С только наличием классов

Ну почему же, не только :-) Есть ещё тонны куч известной субстанции :-) Лол :-)

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

Зачем оно в пакетном менеджере? о.О

Никто об этом не знает :-) Но цепепешники - страстные фонаты мощи метапрограммирования шаблонов и универсализма, ибо где это видано, где это слыхано, чтобы переписывать ещё то, что можно заинклюдить, унаследовать, инстанцировать и гордиться повторным использованием «компонентов» :-)

anonymous
()
Ответ на: комментарий от shkolnick-kun

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

Не возражаю

и позволяют решить поставленную задачу

Уже с сомнением, но таки да, позволяет

достаточно эффективно?

Насчет эффективности не верю. А почему сразу не асме?

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