MacPorty

MacPorty
Pierwsze wydanie 2002 ( 2002 )
Wersja stabilna
Edit this on Wikidata 2.8.1 / 31 stycznia 2023 r . ; 31 dni temu ( 31 stycznia 2023 )
Magazyn
Napisane w Tcl i C
System operacyjny macOS , Darwin
Platforma IA-32 , x86-64 , PowerPC , ARM
Dostępne w język angielski
Typ System zarządzania pakietami
Licencja BSD
Strona internetowa www .macports.org _  Edit this on Wikidata

MacPorts , dawniej DarwinPorts , to menedżer pakietów dla systemów macOS i Darwin . Jest to oprogramowania typu open source , którego celem jest uproszczenie instalacji innego oprogramowania typu open source. Działa podobnie do kolekcji portów Finka i BSD .

MacPorts umożliwia instalację wielu pakietów, wprowadzając polecenie sudo port install nazwa_pakietu w Terminalu , który następnie pobierze, w razie potrzeby skompiluje i zainstaluje żądane oprogramowanie, jednocześnie automatycznie instalując wszelkie wymagane zależności. Zainstalowane pakiety można zaktualizować za pomocą polecenia Sudo port upgrade outdated . MacPorts obsługuje uniwersalne pliki binarne dla PowerPC, opartych na procesorach Intel i Apple krzemowych wersjach systemu macOS , ale migracja z instalacji MacPorts na komputerze PowerPC do wersji na komputerze Mac z procesorem Intel wymaga ponownej instalacji wszystkich zainstalowanych portów.

Stosowanie

Aktualizacja oprogramowania

Istnieją trzy główne tryby korzystania z portu , które pomagają w aktualizacji zainstalowanego oprogramowania:

  • sync aktualizuje lokalne drzewo portów. Nie aktualizuje żadnych zainstalowanych pakietów, ale zamiast tego pobiera informacje o nowym i zaktualizowanym oprogramowaniu. Działa podobnie do brew update lub apt update .
  • selfupdate ma taką samą funkcjonalność jak sync , ale także aktualizuje system MacPorts. W większości przypadków należy tego używać zamiast samego uruchamiania synchronizacji i zaleca się uruchamianie tego za każdym razem przed użyciem MacPorts.
  • upgrade aktualizuje wszystkie zainstalowane porty i ich zależności do najnowszej wersji znalezionej w lokalnym drzewie portów. Działa podobnie do apt upgrade .

Na przykład jednym z typowych zadań jest aktualizacja przestarzałych portów. Można to zrobić, uruchamiając następujące czynności:

samoaktualizacja portu sudo aktualizacja portu sudo jest nieaktualna

MacPorts obsługuje operatory logiczne , takie jak and , or and not, a także wzorce globu (domyślnie włączone) i wyrażenia regularne (włączone przez --regex ). Na przykład, aby zaktualizować przestarzałe porty z wyłączeniem wszystkich PHP , zmień powyższe polecenie na następujące:

Sudo port selfupdate Aktualizacja portu sudo jest nieaktualna, a nie php *

Instalowanie oprogramowania

Użytkownicy mogą wskazać jeden lub więcej pakietów, które chcą zainstalować w trybie instalacji , a MacPorts będzie dążyć do zainstalowania ich i ich zależności. Na przykład zarówno LibreOffice , jak i Texmaker można zainstalować, uruchamiając następujące polecenie:

sudo port zainstaluj libreoffice texmaker

Należy pamiętać, że spowoduje to zainstalowanie najnowszej wersji wskazanej w lokalnym drzewie portów. Wcześniejsze uruchomienie autoaktualizacji zapewni, że pobrany pakiet jest najnowszą wersją w MacPorts.

Warianty

Warianty zapewniają różne opcje, które można wywołać podczas instalowania portu. Typowe akcje obejmują dodawanie lub usuwanie zależności oraz zmianę argumentów kompilacji. Zapewniają dodatkowe funkcje, które niekoniecznie muszą być przydatne dla wszystkich użytkowników, ale mogą być przydatne dla innych.

Na przykład port youtube-dl udostępnia wariant ffmpeg , który jest domyślnie włączony. W zamian za dodanie dwóch dodatkowych zależności pozwala to na wyodrębnienie dźwięku. Warianty można dołączać lub usuwać za pomocą + lub - , więc wariant ffmpeg można wyłączyć, uruchamiając następujące czynności:

sudo port zainstaluj youtube-dl -ffmpeg

Wiele wariantów można wymienić jeden po drugim, oddzielając je spacją. Na przykład możliwe jest wyłączenie domyślnego prefork MPM w Apache2 na korzyść worker MPM:

sudo zainstaluj port apache2 -preforkmpm + workermpm

Warianty portu można określić, uruchamiając komendę nazwa_pakietu wariantów portów lub wyszukując port na stronie internetowej MacPorts.

Początek końca

Strona główna witryny portów MacPorts.

Strona internetowa

Witryna MacPorts Ports została wdrożona podczas Google Summer of Code 2019, a główne ulepszenia interfejsu użytkownika zostały wprowadzone w ramach tego samego programu w 2020 r. Wyświetla informacje o poszczególnych portach, takie jak statystyki instalacji i historia kompilacji. Statystyki te są również dostępne za pośrednictwem interfejsu API . Użytkownicy mogą opcjonalnie zalogować się, aby otrzymać powiadomienie o aktualizacji portu.

Istnieje również oddzielna strona główna MacPorts, która zawiera informacje o projekcie, a także instrukcje dotyczące jego instalacji.

Historia

Jordan Hubbard, jeden z głównych twórców MacPorts, jednocześnie kierujący zespołem Apple ds. UNIX.

MacPorts powstał w 2002 roku przy zaangażowaniu wielu pracowników Apple Inc. , w tym Landona Fullera, Kevina Van Vechtena i Jordana Hubbarda . Pierwotnie był znany jako DarwinPorts, a nazwa pochodzi od Darwin i FreeBSD Ports . Zaczęło się jako część OpenDarwin , którego celem jest pomoc użytkownikom macOS i Darwin w instalacji oprogramowania Unix .

OpenDarwin został zamknięty w 2006 roku. DarwinPorts był następnie hostowany w Mac OS Forge, usłudze hostingowej typu open source stworzonej i utrzymywanej przez Apple Inc. dla projektów innych firm, które nie są obsługiwane przez Apple. Aby podkreślić nacisk projektu na macOS, zmieniono jego nazwę na MacPorts.

Kiedy Apple zamknął Mac OS Forge w 2016 roku, projekt przeniósł się do GitHub. W ramach tej zmiany git został użyty jako nowy system kontroli wersji , chociaż Trac był nadal preferowany do zarządzania zgłoszeniami w przypadku problemów z GitHubem.

Wersja 1.0 została wydana 28 kwietnia 2005. W grudniu 2005 projekt osiągnął kamień milowy, przekraczając 3000 portów. W tamtym czasie instalacja pakietu wiązała się z pobieraniem i kompilacją kodu źródłowego na maszynie użytkownika końcowego. Wersja 2.0, wydana w 2011 roku, wprowadziła obsługę gotowych archiwów binarnych; domyślnie porty są instalowane przy użyciu gotowego archiwum binarnego, jeśli jest dostępne, aw przeciwnym razie są budowane ze źródeł. Od stycznia 2023 r. MacPorts ma ponad 30 900 portów, a społeczność zapewnia najlepsze wsparcie.

Realizacja

MacPorts instaluje oprogramowanie na systemie operacyjnym , dostarczając nowsze wersje wstępnie zainstalowanych pakietów lub oprogramowania, które nie jest zawarte w systemie macOS. Jest to w przeciwieństwie do innych systemów zarządzania pakietami, takich jak APT i DNF , które są częścią systemu operacyjnego. Z tego powodu MacPorts jest czasami nazywany dystrybucją nakładkową. Inne przykłady to Fink i Homebrew .

W przeciwieństwie do kolekcji portów FreeBSD, która instaluje swoje oprogramowanie w /usr/local , MacPorts domyślnie przechowuje swoje dane w /opt/local , chociaż można to zmodyfikować podczas kompilacji MacPorts ze źródła. Powodem tej zmiany jest to, że inne systemy pakowania mogą zastąpić to, co zainstalował MacPorts, lub odwrotnie. Dedykowany katalog pomaga przezwyciężyć ten problem. Fink stosuje podobne podejście, domyślnie instalując swoje dane w katalogu /sw .

Archiwa binarne

Buildboty są używane do budowania portów z wyprzedzeniem, aby użytkownicy nie musieli kompilować pakietu lokalnie. Wynik tego jest znany jako archiwum binarne i pomaga skrócić czas instalacji. Podobnie jak Homebrew, MacPorts przyjmuje podejście polegające na posiadaniu różnych konstruktorów dla różnych wersji systemów operacyjnych i architektur. Czasami jednak może być konieczne zbudowanie ze źródła lokalnego, jeśli pliki binarne nie zostaną zbudowane lub licencja portu nie zezwala na dystrybucję binarną. Gdyby nie można było zbudować pliku binarnego, zostałoby to odnotowane na stronie internetowej MacPorts dla tego indywidualnego portu, a opiekun zostałby ostrzeżony. Możliwe jest również przeglądanie ostatnich zdarzeń buildbota na dedykowanej stronie aktywności.

Archiwa binarne są tworzone lokalnie za każdym razem, gdy użytkownik buduje port ze źródła. Można je również utworzyć ręcznie, uruchamiając sudo port archive nazwa_pakietu .

Pliki portowe

MacPorts przechowuje instrukcje wymagane do zbudowania portu w pliku opisu portu, zwanym inaczej plikiem portów. Jest to podobne do tego, jak AUR używa skryptów powłoki znanych jako PKGBUILD lub jak Homebrew używa skryptów ruby ​​jako formuły. Portfile to kompletne programy TCL z dostępem do interpretera TCL . Wykorzystują proste klucz-wartość do definiowania atrybutów.

MacPorts używa rzeczywistego języka skryptowego, a mianowicie TCL, do tworzenia opisów portów. Daje to autorowi portu dużo większą elastyczność w radzeniu sobie z niektórymi bardziej złożonymi fragmentami oprogramowania, a całe pojęcie haków akcji (pobieranie przed/po, kompilacja, instalacja itp.) jest znacznie czystsze w MacPorts [w porównaniu z FreeBSD ]

Na przykład jest to plik portowy dla Hashcat :



              
                
                

                                                                                              # -*- kodowanie: utf-8; tryb: _tcl;  szerokość tabulatora: 2;  tryb wcięcia-tabulacji: zero;  c-basic-offset: 2 -*- vim:fenc=utf-8:ft=tcl:et:sw=2:ts=2:sts=2   PortSystem  1.0  PortGroup  github  1.0  PortGroup  makefile  1.0  github.setup  hashcat  hashcat  6.2  . 3  v  github.tarball_from  archiwum  kategorie  licencja  bezpieczeństwa  platformy  MIT  opiekunowie  darwin  @gaming-hacker  opis  openmaintainer  Świat                        
                               
                                
                         to  najszybsze  i  najbardziej  zaawansowane narzędzie   do  odzyskiwania  hasła  .  long_description  hashcat  to  najszybsze  i  najbardziej  zaawansowane  \  na  świecie  narzędzie  do  odzyskiwania  haseł  ,  obsługujące  pięć  unikalnych \   trybów  \  ataków  dla  ponad  200  wysoce zoptymalizowanych  algorytmów  haszujących  .  \  hashcat         
                                
                                              

            

                  obecnie  obsługuje  procesory  ,  procesory  graficzne  i  inne  akceleratory  sprzętowe  w  systemach  Linux  ,  Windows  i  macOS  ,  a  także  ma  funkcje  ułatwiające  rozproszone  łamanie  haseł  .  _  _  _  _  _  _  _  _  _  _  
                           
                             \  sha256  c0be1c6693ee1f35c7bef1f79bf9e30a954f717ef42d00e37787aaeff3271e51  \  rozmiar  6222424 

Każdy plik portowy ma predefiniowane etapy, które można ręcznie skonfigurować za pomocą pliku portowego. Należą do nich:

Dane wyjściowe hashcata informacji o porcie. Zapewnia to informacje o porcie z jego pliku portów.

Aportować

Najpierw MacPorts pobiera i pobiera wszystkie istotne pliki dla portu z upstream . Są to tak zwane pliki dist. W przypadku hashcata pliki te są pobierane z GitHub . Są one usuwane wraz z tymczasowymi plikami kompilacji po zakończeniu instalacji.

Suma kontrolna

Sumy kontrolne są zawsze definiowane w pliku portów, ponieważ są różne dla różnych plików. Sumy kontrolne pobranych plików są porównywane z sumami w pliku portowym, aby sprawdzić, czy są zgodne.

Dla Hashcat pobierany jest tylko jeden skompresowany plik, więc w pliku portowym wymagana jest tylko jedna suma kontrolna.

Skrawek

Czasami kod może wymagać modyfikacji, aby można go było zainstalować przez MacPorts. Może to wynikać z różnych powodów, takich jak domyślna instalacja w niewłaściwym miejscu. poprawek mogą być używane do modyfikowania kodu źródłowego w czytelnym formacie.

W powyższym pliku portowym Hashcat nie wymaga żadnych zmian w kodzie, aby instalacja działała. Dlatego nie są wymagane żadne pliki poprawek. Gdy wymagane są łatki, plik łatki byłby przechowywany wraz z plikiem portowym i odnosiłby się do niego w następujący sposób (z wget ):

               pliki poprawek  przedrostek.patch 

Skonfiguruj

Skrypt konfiguracyjny projektu jest uruchamiany w celu przygotowania do procesu kompilacji. Częściowo obejmuje to określenie, czy wymagane biblioteki są obecne. W przypadku portów, które nie mają skryptu konfiguracyjnego, ten etap (oraz inne w razie potrzeby) można wyłączyć.

Ponieważ plik Portfile nie zawiera odniesienia do etapu konfiguracji, hashcat używa domyślnej konfiguracji konfiguracji zdefiniowanej przez MacPorts. Obejmuje to uruchomienie skryptu konfiguracyjnego za pomocą ./configure .

Informacje o porcie hashcat ze strony MacPorts Ports. Z wyjątkiem statystyk, informacje te są pobierane z pliku portów.

Zbudować

Instrukcje w pliku portów są następnie używane do budowania portu. Wykonywane polecenia mogą się różnić w zależności od języka .

Portfile dla hashcata pokazuje, że powinien być traktowany jako projekt Makefile . Dlatego zostanie zbudowany przez uruchomienie make .

Test

Niektóre porty definiują test w celu sprawdzenia, czy kompilacja się powiodła. Jest to opcjonalna faza, która jest uruchamiana tylko wtedy, gdy użytkownik wykona test portu nazwa_pakietu . Dlatego nie jest wykonywany podczas instalowania portu.

Ten port hashcat nie zdefiniował etapu testowego. Po zdefiniowaniu może wyglądać następująco (z ImageMagick ):

                                                          test.run  tak  test.target  check  test.env  DYLD_LIBRARY_PATH  =$  {  workrcścieżka  }  /  magick  /  .libs 

zniszczyć

Etap destroot jest pierwszym krokiem w przeniesieniu zbudowanych plików do właściwej lokalizacji. MacPorts stosuje podejście polegające na umieszczeniu instalacji w lokalizacji pośredniej (destroot) przed umieszczeniem plików we właściwych pozycjach (instalacja). Jedną z zalet tego jest to, że ułatwia rejestrowanie, jakie pliki zostały utworzone, umożliwiając ich czyste odinstalowanie.

Na przykład plik, który normalnie zostałby zainstalowany w /opt/local/lib/libfoo.a , może najpierw zostać zainstalowany w /tmp/stage/opt/local/lib/libfoo.a podczas etapu destroot, zachowując katalog względny Struktura.

W przypadku hashcat odbywa się to poprzez uruchomienie make install , gdzie jeden z argumentów ( DESTDIR ) określa miejsce tymczasowego przechowywania plików.

Należy pamiętać, że w większości scenariuszy na komputerze użytkownika występują tylko poniższe etapy. Dzieje się tak, ponieważ pliki binarne dla portów są wstępnie zbudowane, więc nie trzeba ich budować lokalnie ze źródła.

zainstalować

Zniszczone pliki są bezpiecznie archiwizowane. Ponieważ te pliki nie zostały jeszcze aktywowane, pozwala to na archiwizowanie wielu różnych wersji tego samego portu bez wzajemnego zakłócania się.

Aktywuj

Podczas aktywacji portu pliki w katalogu destroot są przenoszone do właściwej lokalizacji. Dzięki temu są dostępne dla użytkownika, kończąc proces instalacji.

Jeśli chcą wypróbować inną wersję portu, mogą dezaktywować swoją obecną wersję i aktywować nową. Nie powoduje to odinstalowania starego portu, ponieważ można go łatwo ponownie aktywować ze zarchiwizowanych plików.

Podczas aktualizacji portu MacPorts dezaktywuje, ale nie odinstalowuje bieżącej wersji ze względów bezpieczeństwa. Pozwala to użytkownikowi na łatwy powrót do starej wersji, jeśli aktualizacja spowoduje istotne zmiany.

Rozwój

Odznaki spotkania MacPorts 2018.
Deweloperzy MacPorts na spotkaniu 2019 w Scout Center Bohinj , Słowenia.

Za pakiety odpowiadają poszczególni opiekunowie, którzy są wymienieni w pliku przeniesienia. Oczekuje się, że zaktualizują port i w razie potrzeby zastosują poprawki błędów. Każdy, kto chce zmodyfikować plik portowy, powinien powiadomić opiekuna przed zastosowaniem zmian, chociaż nie zawsze jest to wymagane w przypadku drobnych modyfikacji.

Każdy może wnieść wkład do MacPorts, zazwyczaj za pośrednictwem żądań ściągnięcia , a współtwórcy mogą ubiegać się o prawa do zatwierdzenia po dobrym doświadczeniu jako opiekun. Zespół członków MacPorts, zwanych kierownikami projektu, pomaga w prowadzeniu i koordynowaniu projektu.

Począwszy od 2016 roku spotkania odbywają się okazjonalnie raz w roku. Zwykle odbywają się w Słowenii i pozwalają członkom MacPorts pracować nad przyszłym rozwojem.

Zbieranie danych

Domyślnie MacPorts nie zbiera żadnych statystyk. Jednak użytkownicy mogą opcjonalnie przesyłać informacje, uruchamiając sudo port install mpstats . Raz w tygodniu wysyła szczegółowe informacje o zainstalowanych portach, a także różne właściwości systemu. Informacje te są następnie wykorzystywane do określenia, który sprzęt ma być obsługiwany, oraz do zrozumienia, jak szybko nowe wersje MacPorts są przyjmowane.

Użytkownicy mogą przeglądać dane analityczne w witrynie MacPorts.

Zobacz też

Linki zewnętrzne