Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  Dzisiaj 07:10:36

  overcq - Nowy użytkownik

overcq
Nowy użytkownik
Zarejestrowany: 2024-11-17
Spam…

Ro­zważa­nia o me­ne­dże­rze oprogra­mo­wa­nia w Linux

Pełny tytuł: Wszystko jest kodem programu? Rozważania o menedżerze oprogramowania w Linux

Tło

Zastanawiam się nad działaniem menedżera oprogramowania (“portage”) w Gentoo Linux (który mam zainstalowany). Wiadomo, że oprogramowanie w tym systemie przeważnie jest budowane ze źródeł, a pliki “*.ebuild” zawierają informacje o poszczególnym oprogramowaniu w postaci rozszerzonego skryptu powłoki.

Problem

Podczas aktualizacji systemu występują notorycznie problemy z zależnościami, które blokują tę aktualizację z powodu niemożności jednoczesnej instalacji oprogramowania w różnych wersjach. Menedżer oprogramowania nie jest w stanie sobie poradzić. Do niektórych grup oprogramowania (np. modułów Perla) zostały utworzone osobne programy rozwiązujące te zależności, ale do innych nie.
Zastanawiam się nad tym, jak utworzyć lepszy menedżer oprogramowania.

Abstrakt

Opis pojedynczej paczki oprogramowania jest tworzony przez skrypt, który przekazuje wynikowe zmienne otoczenia oraz zawiera procedury uzupełniające/zastępujące poszczególne kroki budowania tego oprogramowania. Czyli jeśli nie wykonuje się budowania tego oprogramowania, to nie wiadomo, co należy zrobić w systemie, by je zainstalować. (Dodam tylko, że w celu ograniczenia pełnych możliwości robienia wszystkiego w systemie skrypt jest wykonywany jako użytkownik “portage”.)

Czy nie można by zrobić jakiegoś rodzaju bazy danych definicji:
1. co ma być zainstalowane w systemie dla pojedynczej paczki oprogramowania
2. jakie są zależności takiej pojedynczej paczki oprogramowania
Czyli miało by to formę danych opisu, a nie kodu programu, który może zrobić wszystko i wymaga sprawdzenia, czy nie robi czegoś nie chcianego przez użytkownika. Instalowane pliki byłyby tylko w obszarze przynależnym do pojedynczego oprogramowania.

No i nie byłoby wymagane uzgadnianie integralności pełnej bazy danych paczek dostępnych w systemie przez osoby zarządzające dystrybucją systemu, ponieważ jeśli jakiś program nie byłby zgodny z nową wersją zależnego oprogramowania, to w systemie pozostawałaby stara wersja do czasu aktualizacji przez autorów oprogramowania.

Wymagana byłaby tylko opieka nad poszczególnym oprogramowaniem niezależnie od jego wersji: oznaczanie w nim wersji, które dokonują jakichś zmian interfejsu zewnętrznego. A to mogliby robić nawet autorzy oprogramowania, gdy dokonywaliby oznaczania kolejnej wersji.

Kwestie końcowe

Jak to jest rozwiązane w innych dystrybucjach systemu Linux, w innych menedżerach pakietów? Występują te same problemy konieczności pełnej integralności wersji dostępnego do instalacji oprogramowania w systemie? A może ktoś coś napisze o menedżerach oprogramowania z innych systemów operacyjnych (uniksopodobnych), które rozwiązują ten problem?

Ostatnio edytowany przez overcq (Dzisiaj 07:22:23)


Nie znam się, ale się wypowiem.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)