Większość z nas, pracujących z AIX, zna IBM AIX Toolbox for Open Source Software. To repozytorium, które daje nam dostęp do świata open source. Ale czy kiedykolwiek przyjrzeliście się dokładnie, co oferuje lista dostępnych tam pakietów. Postanowiłem zrobić alfabetyczny przegląd Toolboxa. Muszę przyznać, że było to interesujące doświadczenie. Spodziewałem się rutynowych aplikacji, a natrafiłem na sporo ciekawostek.
Oczywiście, były tam pakiety, które znam doskonale i używam regularnie, takie jak bash, git, python czy vim. Jednak pośród nich znalazłem sporo pozycji, które były dla mnie zupełną nowością lub o których istnieniu na AIX nie miałem pojęcia, na przykład atf-tests (zestaw testów dla frameworka Automated Testing Framework – ciekawe, co dokładnie testują?), gnutls (alternatywna dla OpenSSL biblioteka do obsługi TLS/SSL) czy tripwire (system wykrywania włamań monitorujący integralność plików).
Szczególnie moją uwagę przykuło kilka pakietów, które zdecydowanie chcę przetestować w najbliższym czasie! Mam tu na myśli na przykład iftop (monitor ruchu sieciowego w stylu top), salt (alternatywa dla Ansible, Chef, Puppet), mosh (odporne na zerwania połączeń SSH?), duo_unix (łatwe 2FA dla AIX?) czy bbcp (superszybkie kopiowanie dużych plików?) i to tylko wycinek tego co tam się znajduje.
Pomyślicie, że przeglądanie setek nazw pakietów nie jest ekscytujące, ale serio, potrafi wciągnąć. Początkowo chciałem wybrać kilka najciekawszych, ale moja osobista lista potencjalnych hitów szybko urosła do ponad 100 pozycji! Ale bez obaw! Jeśli poczujecie znużenie po pierwszych 10 pozycjach z listy, możecie przecież przerwać lekturę w dowolnym momencie. Jednak szczerze? Mam przeczucie, że Was również może to wciągnąć. Zatem, zaczynamy.
- ansible (7.2.0): ’Curated set of Ansible collections included in addition to ansible-core’ – Pełniejszy pakiet Ansible, który zawiera ansible-core oraz wyselekcjonowany zestaw „kolekcji” (gotowych modułów i ról) do wykonywania typowych zadań.
- atf-tests (0.21): 'Automated Testing Framework – Test suite’ – Zestaw testów dla (lub używający) frameworka ATF (Automated Testing Framework), często używanego do testowania oprogramowania systemowego.
- autogen (5.18.16): 'Automated text file generator’ – Narzędzie do generowania plików (często kodu źródłowego lub dokumentacji) na podstawie szablonów i definicji, upraszczające tworzenie powtarzalnych fragmentów kodu.
- bash-completion (2.11): 'Programmable completion for Bash’ – Skrypty i mechanizmy dodające do powłoki bash inteligentne uzupełnianie (podpowiadanie) poleceń i ich argumentów za pomocą klawisza Tab.
- bbcp (15.02.03.01.1): ’Securely and quickly copy data from source to target’ – Narzędzie do bardzo szybkiego i bezpiecznego (opcjonalnie) kopiowania dużych plików między systemami, często używane w środowiskach HPC (High Performance Computing).
- calicoctl (3.3.1 (7.2)): ’Calico CLI tool’ – Narzędzie wiersza poleceń do zarządzania konfiguracją i zasobami Calico.
- cdda2wav (3.01): 'A utility for sampling/copying .wav files from digital audio CDs.’ – Narzędzie do zgrywania (ekstrakcji) ścieżek audio z płyt CD-Audio bezpośrednio do plików w formacie WAV. Część pakietu cdrtools.
- clamav (1.0.7): 'Antivirus Toolkit’ – Otwartoźródłowy silnik antywirusowy służący do wykrywania wirusów, trojanów, malware’u i innych zagrożeń. Zawiera skaner clamscan i demona clamd.
- cloud-init (22.1): ’Cloud node initialization tool’ – Narzędzie używane głównie w środowiskach chmurowych do automatycznej konfiguracji nowo tworzonych maszyn wirtualnych przy pierwszym uruchomieniu (ustawianie hostname, kluczy SSH, uruchamianie skryptów itp.).
- coreutils (9.5): 'The GNU core utilities’ – Zestaw podstawowych narzędzi wiersza poleceń GNU do manipulacji plikami, tekstem i zarządzania systemem (np. ls, cp, mv, rm, mkdir, chmod, cat, echo, head, tail, sort).
- criwpar (0.2.0 (7.2)): 'Container Runtime Interface for WPARs’ – Implementacja CRI (Container Runtime Interface – standard Kubernetes do komunikacji z runtime’em kontenerów) dla WPARów (Workload Partitions – technologia wirtualizacji w AIX). Umożliwia zarządzanie WPARami za pomocą narzędzi zgodnych z CRI.
- dnf-automatic (4.2.17): 'Package manager – automated upgrades’ – Narzędzie (demon/usługa) do automatycznego sprawdzania i instalowania aktualizacji za pomocą DNF.
- dos2unix (7.4.1): 'Text file format converters’ – Narzędzia dos2unix i unix2dos do konwersji znaków końca linii w plikach tekstowych między formatem DOS/Windows (CRLF) a Unix/AIX/Linux (LF).
- duo_unix (1.12.1): 'Duo two-factor authentication for UNIX systems’ – Integracja z usługą uwierzytelniania dwuskładnikowego Duo Security dla systemów Unix/Linux/AIX (np. dla logowania SSH przez PAM).
- etcd (3.4.14): 'Distributed reliable key-value store for the most critical data of a distributed system’ – Rozproszony, niezawodny magazyn klucz-wartość, często używany przez systemy rozproszone (jak Kubernetes) do przechowywania konfiguracji, wykrywania usług i koordynacji.
- faiss (1.9.0): ’A library for efficient similarity search and clustering of dense vectors.’ – Biblioteka (rozwijana przez Facebook AI) do efektywnego wyszukiwania podobieństwa i klastrowania w dużych zbiorach wektorów o dużej gęstości. Używana w uczeniu maszynowym i systemach rekomendacyjnych.
- fdupes (2.3.0): 'Finds duplicate files in a given set of directories’ – Narzędzie wyszukujące pliki o identycznej treści w podanych katalogach.
- filebeat (7.5.2): 'Filebeat sends log files to Logstash or directly to Elasticsearch.’ – Kolejny agent z rodziny Elastic Stack (Beats), specjalizujący się w monitorowaniu plików logów, zbieraniu nowych wpisów i wysyłaniu ich do Logstash lub Elasticsearch.
- fio (3.35): 'Multithreaded IO generation tool’ – Elastyczne narzędzie do testowania wydajności operacji wejścia/wyjścia (I/O) na urządzeniach pamięci masowej (dyski twarde, SSD). Używane do benchmarkingu i stress testów.
- fswatch (1.17.1): 'A cross-platform file change monitor’ – Narzędzie monitorujące określone pliki lub katalogi pod kątem zmian (modyfikacja, utworzenie, usunięcie) i powiadamiające o nich. Przydatne w skryptach automatyzujących.
- ganglia-gmetad (3.7.2): ’Ganglia Meta daemon http’ – Demon Ganglia Meta (gmetad), który zbiera dane z jednego lub więcej klastrów monitorowanych przez gmond, agreguje je i udostępnia (np. dla interfejsu webowego).
- gitk (2.41.0): 'Git revision tree visualiser’ – Graficzny (Tcl/Tk) wizualizator historii repozytorium Git.
- gitweb (2.41.0): 'Simple web interface to git repositories’ – Prosty interfejs webowy (skrypt CGI) do przeglądania repozytoriów Git.
- gnutls (3.8.7): 'A TLS protocol implementation’ – Biblioteka implementująca protokoły SSL/TLS (Transport Layer Security). Alternatywa dla OpenSSL.
- haproxy (2.9.7): 'HAProxy reverse proxy for high availability environments’ – Wysokowydajny serwer proxy TCP/HTTP i load balancer, używany do rozkładania ruchu sieciowego na wiele serwerów backendowych, zapewniając wysoką dostępność i skalowalność usług.
- harfbuzz (7.1.0): 'Text shaping library’ – Biblioteka do „kształtowania tekstu” (text shaping). Przekształca sekwencję znaków Unicode na poprawnie rozmieszczone glify (kształty znaków z czcionki), obsługując złożone skrypty (np. arabski, indyjski), ligatury i kerning.
- helm (2.9.1 (7.2)): 'The Kubernetes Package Manager’ – Narzędzie do zarządzania aplikacjami w Kubernetesie za pomocą tzw. „chartów” (pakietów opisujących aplikację i jej zależności). Wersja 2.x jest starszą gałęzią Helm.
- hexedit (1.4.2): ’A hexadecimal file viewer and editor.’ – Edytor plików działający w terminalu, który pozwala na przeglądanie i modyfikowanie danych pliku na poziomie bajtów, wyświetlając je w systemie szesnastkowym i jako znaki ASCII.
- httpd (2.4.62): 'Apache HTTP Server’ – Serwer WWW Apache. Główny pakiet zawierający demona serwera (httpd) i podstawową konfigurację.
- iftop (1.0pre4): 'iftop does for network usage what top(1) does for CPU usage.’ – Narzędzie terminalowe wyświetlające w czasie rzeczywistym wykorzystanie pasma sieciowego na danym interfejsie, pokazujące aktywne połączenia i ilość przesyłanych danych, posortowane wg użycia pasma.
- ImageMagick (7.1.1.19): 'Viewer and Converter for Images’ – Potężny zestaw narzędzi wiersza poleceń (convert, mogrify, identify, display itp.) do tworzenia, edycji, konwersji i wyświetlania obrazów rastrowych w wielu formatach.
- iperf3 (3.16): 'Measurement tool for TCP/UDP bandwidth performance’ – Nowsza wersja (gałąź 3.x) narzędzia iperf, z przepisanym kodem i nowymi funkcjami.
- ipmitool (1.8.19): 'Utility for IPMI control’ – Narzędzie wiersza poleceń do komunikacji z BMC przez IPMI. Pozwala na monitorowanie czujników sprzętowych (temperatury, napięcia, wentylatory), zarządzanie zasilaniem serwera, odczyt logów zdarzeń sprzętowych itp.
- jq (1.7.1): 'A utility for determining file types’ – Narzędzie przeznaczone do pracy z danymi w formacie JSON
- kubectl (1.12.4 (7.2)): 'Command-line utility for interacting with a Kubernetes cluster.’ – Narzędzie wiersza poleceń (kubectl) do zarządzania klastrem Kubernetes (tworzenie i zarządzanie zasobami jak pody, serwisy, deploymenty).
- lftp (4.9.2): 'A sophisticated file transfer program’ – Zaawansowany klient transferu plików wiersza poleceń, obsługujący wiele protokołów (FTP, FTPS, HTTP, HTTPS, SFTP, BitTorrent i inne). Posiada funkcje takie jak lustrzane odbicie katalogów, wznawianie transferów, równoległe pobieranie.
- logrotate (3.21.0): 'Rotates, compresses, removes and mails system log files’ – Standardowe narzędzie systemowe do zarządzania plikami logów. Automatycznie rotuje (zmienia nazwę, np. syslog na syslog.1), kompresuje stare logi, usuwa najstarsze i opcjonalnie wysyła je mailem, aby zapobiec zapełnieniu dysku.
- lynx (2.9.0): 'A text-based Web browser.’ – Klasyczna, tekstowa przeglądarka internetowa działająca w terminalu.
- lz4 (1.9.4): 'Extremely fast compression algorithm’ – Biblioteka i narzędzie (lz4) implementujące bardzo szybki algorytm kompresji LZ4. Skupia się na prędkości kosztem nieco niższego stopnia kompresji niż np. gzip czy zstd.
- lzo (2.10): 'A real-time data compression library.’ – Biblioteka implementująca algorytm kompresji LZO (Lempel–Ziv–Oberhumer), również zoptymalizowany pod kątem szybkości, szczególnie dekompresji.
- mc (4.8.31): 'User-friendly text console file manager and visual shell.’ – Midnight Commander (mc). Popularny, dwupanelowy menedżer plików działający w trybie tekstowym, inspirowany Norton Commanderem.
- metricbeat (7.5.2): 'Metricbeat is a lightweight shipper for metrics.’ – Agent z rodziny Elastic Stack (Beats), który okresowo zbiera metryki systemowe (CPU, pamięć, dysk, sieć) oraz metryki z różnych usług (Apache, Nginx, MySQL, Redis itp.) i wysyła je do Elasticsearch lub Logstash.
- mosh (1.3.2): 'Mobile shell that supports roaming and intelligent local echo’ – Mosh (Mobile Shell). Alternatywa dla SSH zaprojektowana z myślą o niestabilnych połączeniach sieciowych i mobilności. Utrzymuje sesję nawet przy zmianie adresu IP i poprawia responsywność na łączach o dużym opóźnieniu dzięki predykcyjnemu echu lokalnemu.
- ncdu (1.20): 'Text-based disk usage viewer’ – Ncurses Disk Usage. Interaktywne narzędzie tekstowe do analizy wykorzystania przestrzeni dyskowej, pozwalające łatwo nawigować po katalogach i identyfikować „pożeraczy” miejsca.
- ncurses (6.4): ’A terminal handling library’ – Podstawowa biblioteka do tworzenia interfejsów użytkownika w trybie tekstowym (TUI). Zapewnia funkcje do manipulowania kursorem, kolorami, oknami i obsługi klawiatury w sposób niezależny od typu terminala.
- netperf (2.7.0): 'network performance management tool’ – Narzędzie do testowania wydajności sieci (przepustowość, opóźnienia) dla różnych protokołów (TCP, UDP) i typów ruchu.
- nginx (1.27.2): 'A high performance web server and reverse proxy server’ – Popularny, wysokowydajny serwer WWW, często używany również jako reverse proxy, load balancer i cache HTTP. Znany z niskiego zużycia zasobów i dobrej skalowalności.
- nmap (7.95): 'Network exploration tool and security scanner’ – Potężne i wszechstronne narzędzie do skanowania sieci. Używane do odkrywania hostów, otwartych portów, działających usług, wersji systemów operacyjnych i potencjalnych luk bezpieczeństwa.
- nping (0.7.95): 'Nping packet generator’ – Narzędzie (część pakietu Nmap) do generowania i wysyłania dowolnych pakietów sieciowych, przydatne do testowania firewalli, diagnostyki sieci i stress testów.
- p7zip (16.02): 'Very high compression ratio file archiver’ – Port narzędzia 7-Zip dla systemów Unix/Linux/AIX. Obsługuje format 7z, znany z bardzo wysokiego stopnia kompresji, a także inne formaty (ZIP, RAR, TAR, GZIP itp.).
- parallel (20190622): 'A shell tool for executing jobs in parallel’ – GNU Parallel. Narzędzie wiersza poleceń, które pozwala na łatwe uruchamianie poleceń powłoki równolegle na wielu rdzeniach CPU lub nawet na wielu maszynach.
- pbzip2 (1.1.13): 'Parallel implementation of bzip2′ – Równoległa (wielowątkowa) implementacja kompresora bzip2, podobna do lbzip2, przyspieszająca kompresję/dekompresję na systemach wielordzeniowych.
- perl-Git (2.41.0): 'Perl interface to Git’ – Moduł Perla dostarczający interfejs do pracy z repozytoriami Git z poziomu skryptów Perla.
- pigz (2.7): 'Parallel implementation of gzip’ – Wielowątkowa implementacja kompresora gzip, przyspieszająca kompresję na systemach wielordzeniowych.
- postgresql15 (15.10): 'The shared libraries required for any PostgreSQL clients’ – Podstawowy pakiet dla PostgreSQL w wersji 15. Zawiera biblioteki klienckie (libpq) i prawdopodobnie narzędzia klienckie (psql).
- prngd (0.9.29): 'Pseudo Random Number Generator Daemon’ – Demon generatora liczb pseudolosowych. Zbierze entropię z różnych źródeł systemowych i udostępnia ją aplikacjom (np. przez gniazdo /dev/egd-pool), które potrzebują liczb losowych, ale działają w środowisku z ograniczoną entropią.
- proftpd (1.3.8): 'Flexible, stable and highly-configurable FTP server’ – Wysoce konfigurowalny serwer FTP.
- pv (1.8.5): 'A tool for monitoring the progress of data through a pipeline’ – Pipe Viewer. Narzędzie wiersza poleceń, które monitoruje przepływ danych przez potok (pipe), wyświetlając pasek postępu, prędkość transferu i szacowany czas ukończenia.
- Nie ma zadadnego pakietu na Q , wszyscy administratorzy IBMi w tym momnecie koncza czytac ,i strzelaja focha 🙂
- rkhunter (1.4.6): 'A host-based tool to scan for rootkits, backdoors and local exploits’ – Rootkit Hunter. Narzędzie skanujące system w poszukiwaniu oznak rootkitów, backdoorów i znanych lokalnych exploitów. Porównuje sumy kontrolne plików systemowych, sprawdza domyślne lokalizacje plików rootkitów, szuka podejrzanych uprawnień itp.
- rrdtool (1.8.0): 'Round Robin Database Tool to store and display time-series data’ – Narzędzie i biblioteka do przechowywania i wizualizacji danych szeregów czasowych (np. metryk wydajności systemu, ruchu sieciowego). Używa baz danych RRD (Round Robin Database) o stałym rozmiarze, które automatycznie agregują starsze dane.
- rsync (3.4.1): 'A program for synchronizing files over a network.’ – Bardzo popularne narzędzie do wydajnej synchronizacji plików i katalogów, zarówno lokalnie, jak i przez sieć. Przesyła tylko zmienione fragmenty plików, co czyni go bardzo efektywnym do tworzenia kopii zapasowych i lustrzanych odbić.
- ruby (3.3.7): 'An interpreter of object-oriented scripting language’ – Interpreter języka programowania Ruby. Dynamiczny, obiektowy język skryptowy, znany m.in. z frameworka webowego Ruby on Rails.
- salt (3006.2): 'A parallel remote execution system’ – Salt (lub SaltStack). System do zdalnego zarządzania konfiguracją i wykonywania poleceń na wielu systemach (tzw. „minionach”) jednocześnie. Alternatywa dla Ansible, Chef, Puppet. Ten pakiet to prawdopodobnie meta-pakiet.
- salt-ssh (3006.2): 'Agentless SSH-based version of Salt…’ – Wariant Salt, który nie wymaga instalacji agenta (miniona) na zarządzanych maszynach, a zamiast tego komunikuje się z nimi przez SSH.
- samba (4.21.2): ’Server and Client software to interoperate with Windows machines’ – Implementacja protokołów SMB/CIFS (używanych przez Windows do udostępniania plików i drukarek). Pozwala systemom Unix/Linux/AIX działać jako serwer plików/drukarek dla klientów Windows lub jako klient zasobów Windows.
- screen (4.7.0): 'A screen manager that supports multiple logins on one terminal’ – GNU Screen. Multiplexer terminali. Pozwala na uruchomienie wielu sesji powłoki w jednym terminalu, przełączanie się między nimi, odłączanie sesji (pozostawiając działające programy w tle) i ponowne jej podłączanie później, nawet z innego miejsca.
- sshpass (1.10): 'Non-interactive SSH authentication utility’ – Narzędzie pozwalające na podanie hasła SSH w sposób nieinteraktywny (np. w skrypcie) jako argument linii poleceń lub zmienną środowiskową. UWAGA: Używanie sshpass jest generalnie uważane za niebezpieczne, ponieważ hasło jest widoczne w linii poleceń lub zmiennych. Zdecydowanie preferowane są metody oparte na kluczach SSH.
- stunnel (5.70): 'An SSL-encrypting socket wrapper’ – Program, który działa jako „opakowanie” SSL/TLS dla dowolnego połączenia TCP. Pozwala na dodanie szyfrowania do nieszyfrowanych protokołów (np. stare wersje POP3, IMAP, LDAP) bez modyfikowania oryginalnych aplikacji klienta i serwera.
- sudo (1.9.15p5): 'Allows restricted root access for specified users.’ – Kluczowe narzędzie systemowe (sudo), które pozwala uprawnionym użytkownikom na wykonywanie poleceń jako inny użytkownik (domyślnie jako root) zgodnie z regułami zdefiniowanymi w pliku /etc/sudoers.
- tcpdump (4.99.3): 'A tool for network monitoring and data acquisition.’ – Podstawowe narzędzie wiersza poleceń do przechwytywania i analizowania ruchu sieciowego (pakietów) na interfejsie sieciowym. Używa biblioteki libpcap.
- tcping (2.1.0): 'Check of TCP connection to a given IP/Port’ – Narzędzie podobne do ping, ale działające na poziomie TCP. Sprawdza, czy można nawiązać połączenie TCP z określonym hostem i portem, mierząc czas potrzebny na nawiązanie połączenia.
- test-dummy (1.1): 'Test packages for yum testing’ – Pusty pakiet używany do testowania funkcjonalności menedżera pakietów YUM/DNF.
- tightvnc (1.3.10): 'A remote display system.’ – Implementacja protokołu VNC (Virtual Network Computing), który pozwala na zdalny dostęp do graficznego pulpitu innego komputera. TightVNC jest znany z dodatkowych optymalizacji poprawiających wydajność na wolnych łączach.
- tlog (13): 'Terminal I/O logger’ – Narzędzie do nagrywania i odtwarzania sesji terminalowych. Przydatne do audytu i debugowania.
- tmux (3.3a): 'A terminal multiplexer’ – Nowoczesny multiplexer terminali, podobny do GNU Screen, ale z innymi funkcjami (np. podział okna na panele, bardziej skryptowalny).
- tree (2.1.1): 'File system tree viewer’ – Narzędzie wiersza poleceń, które wyświetla strukturę katalogów w postaci drzewa.
- tripwire (2.4.3.7): 'IDS (Intrusion Detection System)’ – Host-based Intrusion Detection System (HIDS). Narzędzie, które monitoruje integralność plików systemowych. Tworzy bazę danych sum kontrolnych i innych atrybutów ważnych plików, a następnie okresowo porównuje stan bieżący z bazą, raportując wszelkie zmiany, które mogą wskazywać na włamanie.
- unixODBC (2.3.9): 'ODBC driver manager and drivers for PostgreSQL, MySQL, etc.’ – Implementacja standardu ODBC (Open Database Connectivity) dla systemów Unix/Linux/AIX. Zawiera menedżera sterowników ODBC oraz (jak sugeruje opis, choć nie zawsze) niektóre sterowniki do popularnych baz danych. ODBC zapewnia warstwę abstrakcji do komunikacji z różnymi bazami danych.
- unrar (6.2.12): 'Extract, test and view RAR archives’ – Narzędzie wiersza poleceń (darmowe, ale nie open-source) od RARLAB do rozpakowywania, testowania i listowania zawartości archiwów RAR. Obsługuje nowsze wersje formatu RAR niż libunrar czy p7zip.
- vim-minimal (9.1.0946): 'A minimal version of the VIM editor’ – Podstawowa wersja Vima skompilowana z minimalną liczbą funkcji, często instalowana domyślnie w systemie jako zamiennik vi.
- wget2 (2.1.0): 'An advanced file and recursive website downloader’ – Nowa wersja Wget (następca Wget 1.x), przepisana z myślą o obsłudze nowych standardów (HTTP/2, HSTS), lepszej wydajności i rozszerzalności.
- xz (5.4.3): 'LZMA compression utilities’ – Narzędzie wiersza poleceń (xz, unxz, xzcat) i biblioteka (liblzma) do kompresji danych za pomocą algorytmu LZMA/LZMA2. Format xz oferuje zazwyczaj bardzo dobry stopień kompresji.
- zchunk (1.1.4): 'Compressed file format that allows easy deltas’ – Format kompresji (.zck) i narzędzie, zaprojektowane tak, aby ułatwić tworzenie i pobieranie różnic (delta) między plikami. Każdy „chunk” (kawałek) jest kompresowany niezależnie i ma własną sumę kontrolną, co pozwala na pobieranie tylko zmienionych chunków. Używany np. w systemach aktualizacji Fedory.
- zeromq (4.3.5): 'Software library for fast, message-based applications’ – ZeroMQ (ØMQ). Wysokowydajna biblioteka do asynchronicznej komunikacji opartej na wiadomościach. Dostarcza gniazda przenoszące wiadomości w różnych wzorcach komunikacji (request-reply, publish-subscribe, push-pull). Używana do budowy systemów rozproszonych i współbieżnych.