Czasami spotykam się z oprogramowaniem, które nie jest oferowane w .deb
lub .rpm
tylko jako plik wykonywalny.
Na przykład Visual Studio Code , WebStorm lub Kerbal Space Programm .
W przypadku tego pytania wezmę Visual Studio Code za punkt odniesienia.
Oprogramowanie jest oferowane jako pakiet zip.
Podczas rozpakowywania pozostaje mi folder o nazwie VSCode-linux-x64
zawierający plik wykonywalny o nazwie Code
.
Mogę dwukrotnie kliknąć Code
lub wskazać na terminalu, /home/user/Downloads/VSCode-linux-x64/Code
aby go wykonać.
Chciałbym jednak wiedzieć, czy istnieje właściwy sposób zainstalowania tych aplikacji.
Chcę osiągnąć:
- jedno miejsce, w którym mogę umieścić wszystkie aplikacje / oprogramowanie oferowane w ten sposób (pliki wykonywalne)
- obsługa terminali (to znaczy na przykład: mogę pisać
vscode
z dowolnego folderu w moim terminalu, a to automatycznie wykona Visual Studio Code.
Dodatkowe informacje:
- Środowisko pulpitu: Gnome3
- System operacyjny: Debian
EDYCJA:
Postanowiłem udzielić odpowiedzi @kba, ponieważ jego podejście działa lepiej z moim rozwiązaniem do tworzenia kopii zapasowych, a poza tym. Posiadanie skryptu wykonującego pliki binarne daje możliwość dodawania argumentów.
Ale żeby być uczciwym, podejście Johna WH Smitha jest tak samo dobre jak @ kba.
źródło
.desktop
wpis, aby rozpocząć z menu lub dodać konfigurację, odkryć flagi wiersza poleceń itp. Alias jest bardzo nieelastyczny.Według tldp ,
/opt
może być dobrym miejscem dla tego rodzaju oprogramowania. Użyłem go sam do przechowywania niektórych narzędzi związanych z drukarką, a „dynamiczną” wersję Skype'a (jak powiedział kba, „obsługę terminali” można wówczas uzyskać poprzez odpowiednie ustawieniePATH
zmiennej).Mówiąc bardziej ogólnie, zwykle używam
/opt
do „instalowania” oprogramowania zastrzeżonego spakowanego jako plik wykonywalny, ale to chyba tylko ja. Poza tym staram się po prostu unikać tego rodzaju oprogramowania, ponieważ zwykle nie mam pewności, co on zrobi po uruchomieniu.Innym powodem, dla którego wybrałem
/opt
jest to, że zwykle jest przeznaczony do niezależnego kodu innej firmy, który nie opiera się na żadnym pliku poza jego/opt/'package'
katalogiem (i innymiopt
katalogami, takimi jak/etc/opt
).Jedną z zalet wydania kodu źródłowego jest to, że ludzie mogą skonfigurować proces kompilacji, zapewniając niestandardowe ścieżki biblioteki / nagłówków w oparciu o specyfikę ich systemu. Gdy programista decyduje się wydać kod jako plik wykonywalny, ta korzyść zostaje utracona. IMHO, w tym momencie, deweloper nie może już zakładać, że zależności jego / jej programu będą dostępne (dlatego wszystko powinno być spakowane obok pliku wykonywalnego).
Aby uzyskać więcej informacji, sugerowałbym również przeczytanie tego innego pytania dotyczącego U&L , które dotyczy różnic między
/opt
i/usr/local
. Osobiście unikałbym/usr/local
w tym przypadku, zwłaszcza jeśli nie jestem tym, który zbudował program, który instaluję.źródło
Jest całkowicie możliwe, a właściwie całkiem łatwe, utworzenie binarnego pakietu dystrybucyjnego z binarnego archiwum zip lub tarballa, jak w twoim przykładzie Visual Studio Code.
Tak, pakiety binarne dystrybucji Linuksa, takie jak
deb
si irpm
s, są zwyczajowo generowane ze źródła, ale nie muszą tak być. I często (choć nie zawsze) możliwe jest takie ustawienie, aby wynikowy pakiet binarny dystrybucji instalował rzeczy w „odpowiednich” miejscach, aby zachować zgodność z polityką dystrybucji.W przypadku losowego, zastrzeżonego pliku tar, jeśli istnieje sposób na prawidłową instalację oprogramowania, np. Cel instalacji w pliku makefile, wówczas można go użyć z maszyną do dystrybucji. W przeciwnym razie może to wymagać „ręcznego” mapowania plików do „właściwych” miejsc, co może być bardzo pracochłonne. Tworzenie takiego pakietu może wydawać się dziwną rzeczą, ale nadal miałoby jedną z głównych zalet zarządzania pakietami, a mianowicie czyste instalacje i odinstalowywanie. I oczywiście taki pakiet nigdy nie zostanie zaakceptowany w żadnej dystrybucji Linuksa wartej nazwy, ale to nie jest twoje pytanie.
źródło
fpm
.Rzadko widziałem oprogramowanie dostarczane jako binarny plik wykonywalny i nic więcej, i szczerze mówiąc, byłbym trochę podejrzliwy. Jeśli nic innego nie spodziewałbym się przynajmniej
README
(wraz z instrukcją instalacji) iLICENSE
towarzyszącego mu. Biorąc to pod uwagę ...Zwykle przechowywane są lokalnie zainstalowane pliki binarne, którymi nie zarządza menedżer pakietów dystrybucji
/usr/local/bin
. Możesz go tam umieścić, a ponieważ ten katalog jest (lub powinien być) już w twoim$PATH
, możesz uruchomić oprogramowanie, wpisując jego nazwę w wierszu poleceń.Zwykle oprogramowanie powinno również zawierać stronę podręczną (oprogramowanie nieudokumentowane jest złe, prawda?), Która się pojawia
/usr/local/man
i może zawierać pliki pomocnicze, takie jak tłumaczenia na inne języki i wtyczki, które mogą się pojawiać/usr/local/share
lub/usr/local/lib
itd. Z tego powodu oprogramowanie, które nie jest dostarczane jako pakiet, takie jak.deb
lub.rpm
zazwyczaj, zawiera instalator, który umieszcza wszystko we właściwych miejscach. Zwykle jest to instalowane ze źródłamake install
.źródło
Code
to tylko punkt wyjścia. Może wyświetlać licencję podczas działania (64-bitowy plik wykonywalny nie działa na danym komputerze, ale ktoś powinien to sprawdzić, aby udzielić dobrej odpowiedzi na aktualne pytanie OP/usr/local
zamiast w katalogu domowym. (Nie wszystkie programy działałyby -Eclipse
na przykład).