Aplikacja przenośna - Portable application

Napęd USB może przenosić aplikacji przenośnych

Aplikacja przenośna ( aplikacja przenośna ), czasami nazywana również samodzielną , to program przeznaczony do odczytywania i zapisywania ustawień konfiguracyjnych w dostępnym folderze na komputerze, zwykle w folderze, w którym znajduje się przenośna aplikacja. Ułatwia to przenoszenie programu z preferencjami użytkownika i danymi między różnymi komputerami. Program, który nie ma żadnych opcji konfiguracyjnych, może być również aplikacją przenośną.

Przenośne aplikacje mogą być przechowywane na dowolnym urządzeniu do przechowywania danych , w tym w wewnętrznej pamięci masowej , udziale plików , pamięci w chmurze lub pamięci zewnętrznej, takiej jak dyski USB i dyskietki — przechowując swoje pliki programów oraz wszelkie informacje konfiguracyjne i dane na samym nośniku pamięci. Jeśli nie są wymagane żadne informacje konfiguracyjne, przenośny program można uruchomić z pamięci masowej tylko do odczytu, takiej jak dyski CD-ROM i DVD-ROM . Niektóre aplikacje są dostępne zarówno w wersji instalowalnej, jak i przenośnej.

Niektóre aplikacje, które domyślnie nie są przenośne, obsługują opcjonalną przenośność za pośrednictwem innych mechanizmów, z których najczęstszym są argumenty wiersza poleceń . Przykłady mogą obejmować /portablepo prostu polecenie, aby program zachowywał się jak program przenośny, lub --cfg=/path/inifileokreślenie lokalizacji pliku konfiguracyjnego.

Jak każda aplikacja, aplikacje przenośne muszą być kompatybilne ze sprzętem komputerowym i systemem operacyjnym .

W zależności od systemu operacyjnego przenośność jest mniej lub bardziej skomplikowana do wdrożenia; do systemów operacyjnych, takich jak AmigaOS , wszystkie aplikacje są z definicji przenośne.

Przenośne aplikacje Windows

Aplikacja przenośna nie pozostawia swoich plików ani ustawień na komputerze hosta ani nie modyfikuje istniejącego systemu i jego konfiguracji. Aplikacja nie zapisuje do rejestru Windows ani nie przechowuje swoich plików konfiguracyjnych (takich jak plik INI ) w profilu użytkownika ; zamiast tego przechowuje swoje pliki konfiguracyjne w przenośnym katalogu. Innym wymaganiem, ponieważ ścieżki plików często różnią się na zmieniających się komputerach ze względu na różnice w przypisywaniu liter dysków , jest konieczność przechowywania ich przez aplikacje w formacie względnym . Chociaż niektóre aplikacje mają opcje obsługi tego zachowania, wiele programów nie jest do tego przystosowanych. Powszechną techniką dla takich programów jest użycie programu uruchamiającego do kopiowania niezbędnych ustawień i plików na komputer hosta podczas uruchamiania aplikacji i przenoszenia ich z powrotem do katalogu aplikacji po jej zamknięciu.

Alternatywną strategią osiągnięcia przenośności aplikacji w systemie Windows, bez konieczności wprowadzania zmian w kodzie źródłowym aplikacji, jest wirtualizacja aplikacji : aplikacja jest „sekwencjonowana” lub „pakowana” w warstwie wykonawczej, która w przejrzysty sposób przechwytuje wywołania systemu plików i rejestru, a następnie przekierowuje je do innych trwałe przechowywanie bez wiedzy aplikacji. Takie podejście pozostawia samą aplikację niezmienioną, ale przenośną.

To samo podejście stosuje się do poszczególnych komponentów aplikacji: bibliotek uruchomieniowych , komponentów COM czy ActiveX , nie tylko dla całej aplikacji. W rezultacie, gdy poszczególne komponenty są przenoszone w taki sposób, mogą być: zintegrowane z oryginalnymi aplikacjami przenośnymi, wielokrotnie tworzone (wirtualnie instalowane) z różnymi konfiguracjami/ustawieniami w tym samym systemie operacyjnym (OS) bez wzajemnych konfliktów. Ponieważ przeniesione komponenty nie wpływają na powiązane jednostki chronione systemem operacyjnym (rejestr i pliki), komponenty nie będą wymagały uprawnień administracyjnych do instalacji i zarządzania.

Firma Microsoft dostrzegła potrzebę utworzenia rejestru specyficznego dla aplikacji dla swojego systemu operacyjnego Windows już w 2005 roku. W końcu włączył do systemu Windows XP część tej technologii, przy użyciu technik wspomnianych powyżej, za pośrednictwem bazy danych zgodności aplikacji z biblioteką kodu Detours. Nie udostępnił żadnej z tych technologii za pośrednictwem swoich systemowych interfejsów API .

Przenośność w systemach Linux i uniksopodobnych

Programy napisane z myślą o uniksowej bazie często nie robią żadnych założeń. Podczas gdy wiele programów Windows zakłada, że ​​użytkownik jest administratorem — co było bardzo rozpowszechnione w czasach Windows 95 / 98 / ME (i do pewnego stopnia w Windows XP / 2000 , ale nie w Windows Vista lub Windows 7 ) — takie działanie szybko skutkowałoby Błędy „Odmowa uprawnień” w środowiskach uniksopodobnych, ponieważ użytkownicy będą znacznie częściej znajdować się w stanie nieuprzywilejowanym. Programy są zatem generalnie zaprojektowane do używania HOME zmiennej środowiskowej do przechowywania ustawień (np. $HOME/.w3mdla przeglądarki w3m ). Dynamiczny linker dostarcza zmienną środowiskową, LD_LIBRARY_PATHktórej programy mogą używać do ładowania bibliotek z niestandardowych katalogów. Zakładając, że /mntzawiera przenośne programy i konfigurację, wiersz poleceń może wyglądać tak:

HOME=/mnt/home/user LD_LIBRARY_PATH=/mnt/usr/lib /mnt/usr/bin/w3m www.example.com

Aplikacja Linux bez konieczności interakcji z użytkownikiem (np. adaptacja skryptu lub zmiennej środowiskowej) na różnych ścieżkach katalogów może zostać osiągnięta za pomocą opcji GCC Linker , $ORIGINktóra umożliwia względną ścieżkę przeszukiwania biblioteki.

Nie wszystkie programy to honorują — niektóre całkowicie ignorują $HOME i zamiast tego wyszukują użytkownika, /etc/passwdaby znaleźć katalog domowy, utrudniając w ten sposób przenośność.

Istnieją również formaty pakietów między dystrybucjami, które nie wymagają uprawnień administratora do uruchomienia, takie jak Autopackage , klik (obecnie AppImage) lub CDE, ale które zyskały jedynie ograniczoną akceptację i wsparcie w społeczności Linuksa w 2000 roku. Około 2015 roku idea przenośny i niezależny pakowania distro dla ekosystemu Linux ma więcej trakcję kiedy Linus Torvalds omówione ten temat na DebConf 2014 i zatwierdzony później AppImage za divelog aplikacji górotworze . Na przykład MuseScore i Krita pojawiły się w 2016 roku i zaczęły używać kompilacji AppImage do wdrażania oprogramowania. RedHat wypuścił w 2016 roku system Flatpak , który jest następcą projektu glick Alexandra Larssona inspirowanego klikiem (obecnie AppImage). Podobnie, Canonical wydany w pakietach Snap 2016 dla Ubuntu i wielu innych dystrybucji Linuksa.

Wiele aplikacji na komputery Mac, które można zainstalować metodą „przeciągnij i upuść”, jest z natury przenośnych jako pakiety aplikacji na komputery Mac. Przykłady obejmują Mozilla Firefox , Skype i Google Chrome, które nie wymagają dostępu administratora i nie muszą być umieszczane w centralnym, zastrzeżonym obszarze. Aplikacje umieszczone w /Users/username/Applications( ~/Applications) są rejestrowane w macOS LaunchServices w taki sam sposób, jak aplikacje umieszczone w głównym /Applicationsfolderze. Na przykład kliknięcie prawym przyciskiem myszy pliku w Finderze, a następnie wybranie „Otwórz za pomocą...” spowoduje wyświetlenie aplikacji dostępnych zarówno w /Applications, jak i ~/Applications. Deweloperzy mogą tworzyć instalatory produktów Mac, które umożliwiają użytkownikowi wykonanie instalacji w katalogu domowym, oznaczonej „Zainstaluj tylko dla mnie” w interfejsie użytkownika instalatora. Taka instalacja jest wykonywana jako użytkownik.

Zobacz też

Bibliografia