Автор Гілка: rpm manger  (Прочитано 5756 раз)

Відсутній Markus

  • Дописувач
  • **
  • дописів: 79
  • Карма: +0/-0
  • Програматор
rpm manger
« : 2006-05-07 23:22:07 »
Добрий день.
Вирішив я написати власний менеджер пакунків та от виникла проблема, не получається мені інсталювати пакунки. Хочу використати функцію rpmInstall із rpm-devel але не получається заповнити правильно структуру rpmInstallArguments_s а саме задати опції інстансталяції пакета. Задаю константи правильно як написано в документації:
rpmInstallInterfaceFlags inst_flags = INSTALL_NONE;
  inst_flags |= INSTALL_INSTALL;//
  inst_flags |= INSTALL_HASH; // але саме в останніх двох стрічках компілятор викидає помилку що не може перевести int в rpmInstallInterfaceFlags примусове переведення (rpmInstallInterfaceFlags) теж нічого не дало. Хоча дивився на сирці rpm там таке переведення відбувається без проблем. Може хтось уже займався подібним і підкаже що я не так роблю. RPM версії 4.02.
Чи потрібні Україні програмісти, які не знають англійської мови?

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: rpm manger
« Відповідей #1 : 2006-05-08 11:05:19 »
Ви чим компілите, gcc чи g++? Такий от трюк неможливий без RTTI, а воно, наскільки я пам'ятаю, у gcc вимкнено.

ЗІ А навіщо вам свій менеджер пакетів?

Відсутній Markus

  • Дописувач
  • **
  • дописів: 79
  • Карма: +0/-0
  • Програматор
Re: rpm manger
« Відповідей #2 : 2006-05-10 01:30:46 »
Компілятор g++. Пробував компілювати із підримкою RTTI помилки ті ж самі. Я використовую myLinux 3.1 там лише менеджер пакунків від redhat, який мені не дуже подобається. Комусь може видатись смішним, що я із цієї причини вирішив написати власний менеджер, адже можна встановити KPackage чи якийсь інший, однак я вирішив спробувати себе у написанні таких програм. Пишу програму користуючись KDevelop проект оснований на qmake. Вибачаюсь якщо десь вжив не ту термінологію бо в Лінукс я вивчаю методом втику та читанням документації (якщо знайду в дистрибутиві :)).  
Чи потрібні Україні програмісти, які не знають англійської мови?

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: rpm manger
« Відповідей #3 : 2006-05-10 11:00:27 »
Ну, тоді не знаю. Подивіться, як ця бібліотека використовується в інших програмах і як вона збирається. Гугл сильно помагає:)

А, так Ви не менеджер пакетів а фронтенд до нього пишете...

Цитата
Комусь може видатись смішним, що я із цієї причини вирішив написати власний менеджер
Та ні в якому разі! Софта має бути багато і різного, і дуже багато хороших речей написано саме з такої причини. Але існуючі продукти на цю тему треба вивчити - раптом є такий, що влаштує.

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: rpm manger
« Відповідей #4 : 2006-05-10 13:15:24 »
Це не зовсім по темі (не про програмування і не про RPM, зате про менеджмент пакунків), але може вас зацікавить наступний документ: http://www.linuxfromscratch.org/hints/downloads/files/more_control_and_pkg_man.txt.
Можливо ви знайдете там ідеї, що стануть при нагоді у розвитку вашого проекту.
(Я теж взявся за розробку свого менеджера пакунків, і за основу взяв саме викладене там).

Відсутній Markus

  • Дописувач
  • **
  • дописів: 79
  • Карма: +0/-0
  • Програматор
Re: rpm manger
« Відповідей #5 : 2006-05-11 17:33:41 »
Проблему вирішив кустарним способом. Константи типуINSTALL_INSTALL присвоюю зміним типу rpmInstallInterfaceFlags (після включення підримки RTTI компілятор дозволяє це зробити) а потім сумую. Приклад:
rpmInstallInterfaceFlags inst_flags = INSTALL_NONE;
rpmInstallInterfaceFlags v1 = INSTALL_INSTALL;
rpmInstallInterfaceFlags v2 = INSTALL_HASH;
  inst_flags |= (rpmInstallInterfaceFlags)(v1 | v2);
Якщо чесно мені такий підхід видається диким і абсурдним. А може у мене компілятор якийсь не правильний :). Прийдеться скористатись прадою
Цитата
Подивіться, як ця бібліотека використовується в інших програмах і як вона збирається. Гугл сильно помагає

Цитата
Це не зовсім по темі (не про програмування і не про RPM, зате про менеджмент пакунків), але може вас зацікавить наступний документ: http://www.linuxfromscratch.org/hints/downloads/files/more_control_and_pkg_man.t xt.
Можливо ви знайдете там ідеї, що стануть при нагоді у розвитку вашого проекту.
Спасибі за ссилку багато чого цікавого для себе почерпнув.
Цитата
(Я теж взявся за розробку свого менеджера пакунків, і за основу взяв саме викладене там).
Наскільки я зрозумів із more_control_and_pkg_man.t xt ви пишете свій менеджер без пітримки rpm-devel, але якщо я помиляюсь і ви використовуєте rpm-devel то може поділитись як ви із вище названою проблемою інсталяції пакунків справились?
Чи потрібні Україні програмісти, які не знають англійської мови?

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: rpm manger
« Відповідей #6 : 2006-05-11 17:42:08 »
Ви праві, без. Навіть не на сі...
Поки що це - набір скриптів bash.

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: rpm manger
« Відповідей #7 : 2006-05-11 18:08:55 »
А може у мене компілятор якийсь не правильний :).
Чесно кажучи, я правильного компілятора зроду не бачив. Знаєте, які перли gcc часом видає, особливо gcc3? Тільки четвертий потрохи до стандартів приводять.
« Змінено: 2006-05-11 18:09:57 від Cthulhu »

Відсутній Markus

  • Дописувач
  • **
  • дописів: 79
  • Карма: +0/-0
  • Програматор
Re: rpm manger
« Відповідей #8 : 2006-05-11 19:05:28 »
Дякую Cthulhu та ISBear за поради і цікаву розмову. До речі ISBear ви не підкажете де можна знайти хорошу документацію по bash скриптах?
Чи потрібні Україні програмісти, які не знають англійської мови?

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: rpm manger
« Відповідей #9 : 2006-05-11 19:47:44 »
Ось те, що я читав:
http://www.tldp.org/LDP/abs/abs-guide.html.tar.gz
Автору подобається застосовувати у прикладах те, що він ще не розказував, тому розуміння прикладів дещо ускладнюється...

А це - гарний опис sed та awk. (Набагато краще за читання man- та info-сторінок). Єдине що - IMHO, багато повторень одного й того ж.
http://www.unix.org.ua/orelly/unix/sedawk/index.htm

P.S. Ого, з того часу нова версія abs вийшла...

Відсутній Markus

  • Дописувач
  • **
  • дописів: 79
  • Карма: +0/-0
  • Програматор
Re: rpm manger
« Відповідей #10 : 2006-05-12 00:21:28 »
Найшов вирішення проблеми :D. Не знаю чим я думав раніше. Прблема була не в компіляторі. Просто потрібно було перевантажити оператор |= для типів rpmtransFlags і rpmInstallInterfaceFlags і програма компілюється без усяких проблем.
rpmtransFlags operator |=(rpmtransFlags val1, rpmtransFlags val2)
{
  rpmtransFlags res;
  
  res = (rpmtransFlags)(val1 | val2);
  return res;
}

rpmInstallInterfaceFlags operator |= (rpmInstallInterfaceFlags val1, rpmInstallInterfaceFlags val2)
{
  rpmInstallInterfaceFlags res;
  
  res = (rpmInstallInterfaceFlags)(val1 | val2);
  return res;
}

і все і то треба було сидіти до 12 години ночі щоб до такого додуматись. Чи я дурний ::)?
Чи потрібні Україні програмісти, які не знають англійської мови?

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: rpm manger
« Відповідей #11 : 2006-05-12 10:00:46 »
Отак завжди:)

Відсутній Louser

  • Новачок
  • *
  • дописів: 9
  • Карма: +0/-0
Re: rpm manger
« Відповідей #12 : 2006-05-12 14:58:43 »
головне - чому ще один глюкавий менеджер пакунків?

імхо подивитись "як там KDevelop робе" можна й без цього.

чи автор планує додавати свій код до Kpackage?

Чи автора цікавить корисна робота?
« Змінено: 2006-05-12 16:15:14 від Louser »

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: rpm manger
« Відповідей #13 : 2006-05-12 16:46:04 »
Пан є видатним програмістом? Може пан написав якусь корисну софтину? Якщо ні, то чому пан вказує іншим, що їм робити? Га?

Читати "Just For Fun" до повного просвітлення.

Відсутній Louser

  • Новачок
  • *
  • дописів: 9
  • Карма: +0/-0
Re: rpm manger
« Відповідей #14 : 2006-05-12 17:04:54 »
Читай що в мене під аватаром, ЛО[УР]івський розумнику
« Змінено: 2006-05-12 17:06:34 від Louser »