Przenośne aplikacje dla systemu Linux?

12

Zadanie tego pytania sprawiło, że pomyślałem - czy są dostępne przenośne aplikacje dla Linuksa? Wiem, że wiele prostych narzędzi można uruchomić w sposób autonomiczny, ale czy napotkam ograniczenia bezpieczeństwa w przypadku popularnych dystrybucji systemu Linux?

Biorąc pod uwagę dostępność narzędzi itp. W większości domyślnych systemów Linux, czy w ogóle istnieje taka potrzeba?

EDYCJA: Aby to wyjaśnić, szukam aplikacji, które mogę uruchomić na istniejącym systemie Linux - nie chcę nosić całego systemu operacyjnego, jeśli nie muszę.

Andy Mikula
źródło

Odpowiedzi:

7

Większość aplikacji korzystających z łańcucha narzędzi GNU można zbudować ze źródła takiego jak to:

./configure --prefix=[directory which will contain your 'portable' application]
make
make install

a następnie przeniósł się na inny komputer z kompatybilnymi bibliotekami.

Linux nie ma rejestru, wiele aplikacji zwykle nie musi tak naprawdę być „instalowanych”, można je zamiast tego zbudować ze źródła, więc tworzenie aplikacji „My Specialy Portable © dla systemu Linux” jest całkowicie bezcelowe, więc myślę, że nikomu to nie przeszkadza.

Wystarczy spojrzeć na najwyższą odpowiedź na to pytanie, a zrozumiesz tę głupią koncepcję uczynienia aplikacji „przenośnymi” „użytecznymi” tylko w świecie rejestrów i zastrzeżonych aplikacji z zarządzaniem licencjami.

Alex Bolotov
źródło
Dzięki! Nie byłam wcześniej pewna, czy to głupie, ale naprawdę doprowadziłeś ten punkt do domu;)
Andy Mikula
5

./configureSztuczka zadziała w przypadku niektórych zastosowań. Jednak wiele aplikacji koduje w sobie prefiks, a następnie używa go w czasie wykonywania do znajdowania plików pomocniczych. Potrzebują także możliwości ładowania plików bibliotek współdzielonych (chociaż LD_LIBRARY_PATHmożna w tym celu ustawić zmienną środowiskową). Wynika to jednak z tego, że aplikacje przenośne prawdopodobnie nie będą bardzo przenośne - będą zależały od tego, czy mają określony prefiks. Prawdopodobnie będzie to działało w wielu miejscach (większość współczesnych dystrybucji instaluje nośniki w /media/DISKNAME), ale nie uniemożliwia aplikacji naprawdę przenośnej i niezależnej od lokalizacji.

Dlatego odpowiedź netto jest taka, że ​​tworzenie przenośnych aplikacji Linux, choć nie niemożliwe, jest pełne subtelności. Podejrzewam, że jest to główny czynnik przyczyniający się do tego, że nie robi się tak blisko, jak w systemie Windows. Ponadto w publicznych urządzeniach komputerowych (w których powstaje większość korzyści związanych z aplikacjami przenośnymi) zwykle nie działa Linux. Godnym uwagi wyjątkiem są laboratoria uniwersyteckie, ale zwykle można tam zainstalować dodatkowe oprogramowanie w katalogu domowym.

Michael Ekstrand
źródło
1

Linux for Travellers śledzi ten temat i ma kilka sztuczek, aby obejść fakt, że nie ma (jeszcze?) Instalacji aplikacji przenośnych przeznaczonych dla Linuksa - prawdopodobnie z podanego przez ciebie powodu: jeśli masz uprawnienia instalacyjne, już dodawanie nowych aplikacji jest wystarczająco łatwe nie trzeba używać przenośnych.

  • Zainstaluj WINE i uruchom aplikacje z PortableApps.com lub z innego miejsca. Wygląda to na przesadę, ale pozwala na korzystanie z instalacji aplikacji mobilnych, którą już masz.
  • Uruchom Damn Small Linux we własnej instalacji Linux (np. Na Ubuntu ). Ten jest przydatny, jeśli nie masz jeszcze uprawnień do instalacji w danym systemie Linux.
twaróg
źródło
1

Możesz sprawdzić Portable Linux Apps . Wystarczy pobrać przenośne pliki binarne i uczynić je wykonywalnymi. wszystkie potrzebne zależności są zawarte w pliku binarnym.

użytkownik
źródło
1

Aby dowolna aplikacja była przenośna, możesz być w stanie tworzyć dowiązania symboliczne, które umieszczasz w folderze domowym podczas logowania; aplikacja zapisze preferencje za pomocą dowiązania symbolicznego do dowolnego miejsca, na którym prowadzi, powiedzmy, że pamięć flash. Użyłem tego do przenośnych zapisów gry Minecraft.

Andrew Wonnacott
źródło
1

Problem z uruchamianiem aplikacji w istniejących systemach Linux polega na tym, że często aplikacje są kompilowane w celu korzystania z bibliotek współdzielonych. Istnieje wiele dystrybucji Linuksa i wiele wersji bibliotek podstawowych. Jeśli masz szczęście, istniejący system Linux będzie miał te same wersje, a Twoja aplikacja zostanie połączona z poprawną wersją bibliotek. Jeśli nie, to nie zadziała. Obejściem tego problemu byłoby skompilowanie potrzebnych aplikacji ze statycznie połączonymi bibliotekami, ale prowadzi to do znacznie większych rozmiarów programów.

vtest
źródło
1

Innym podejściem do twojego pytania jest koncepcja dzisiejszych startupów, które często piszą kod po stronie klienta, a następnie wykorzystują frameworki do ciężkiego podnoszenia klientów syntezujących na iOS, Androida i Internet. Tutaj logika biznesowa jest przenośna, ale jest automatycznie przenoszona przez to narzędzie. Istnieje wiele takich ram, Meteor jest jeden.

W ten sposób znaczna część aplikacji znalezionych w sklepach z aplikacjami ma to przenośne dziedzictwo.

Aby jeszcze bardziej zatrzeć ten pomysł, mamy teraz WebAssembly, który umożliwia pisanie kodu przeglądarki (który z definicji jest javascript) w rosnącej liczbie statycznie skompilowanych tradycyjnie języków po stronie serwera, które są analizowane w celu syntezy javascript, aby dotrzeć do klienta.

Pytasz o aplikacje dla Linuksa, ale z oprzyrządowaniem takim jak Electron, który faktycznie jest graficznym interfejsem użytkownika lub wierszem poleceń owiniętym wokół nodejs, idea przenośnych aplikacji linuksowych przeżywa eksplozję wyborów

Scott Stensland
źródło
0

Na boisku jest nowy gracz, AppImage . Aplikacje są pakowane jako pojedynczy plik, z uwzględnieniem wszystkich zależności, dzięki czemu można je uruchamiać niezależnie od podstawowej dystrybucji.

W AppImageHub znajduje się repozytorium obrazów aplikacji .

DevSolar
źródło