Pisanie programów na Linuxa

Mam takie ogólne pytanie co do Linuxa.

Miałem już kilka podejść. Zawsze rozchodziło się o oprogramowanie, dostępność i łatwość instalacji.

Teraz próbuję zainstalować TeamSpeak’a - dla mnie jako początkującego masakra - ale nie ważne.

Zastanawia mnie jedno - dlaczego osoba pisząca program pisze go n.p. z rozszerzeniem .run - czy jest to jakkolwiek dostępne rozszerzenie w jakiejkolwiek dystrybucji? Bo spotkałem się z .deb i innymi, które się instalują bez problemu. Ale z .run mam problem.

Nie chodzi mi o samo rozwiązanie istniejącego problemu ale o ciekawość na temat tego dlaczego programiści piszą w tylu różnych rozszerzeniach programy.

Z góry dzięki za odpowiedzi i wyrozumiałość dla linuxowego lamera :slight_smile:

Zależy to od tego,czy masz do czynienia z paczką przygotowaną pod dystrybucję linuxową z managerem pakietów  Dystrybucja oparta na Debianie-Ubuntu,Mint .deb, Red Hacie-Mandriva .rpm,czy z instalatorem skryptowym .run.To jest instalator,uruchomienie powoduje wykonanie skryptu zaszytego w środku. Tak dystrybuowane są np. sterowniki od kart graficznych.Kody żródłowe programów są dystrybuowane w formie archiwów tar,tgz,dpkg.Mogą być podwójnie spakowane.

.run uruchamiasz z poziomu konsoli jako root - super użytkownik mający pełne uprawnienia do modyfikacji systemu.Masz problemy,bo nie da się tego odpalić wprost ze środowiska graficznego,tylko z terminalu.

Paczka, którą opisujesz, czyli coś *.run została przez Ciebie pobrana z jakiejś strony. Jest to paczka, która nie wchodzi w skład repozytorium i nie zainstalujesz jej menedżerem pakietów, dostępnym w danej dystrybucji. Najczęściej na stronie, z której taką paczkę pobierasz jest informacja co należy zrobić by ją zainstalować. Ogólna reguła jest taka, że:

  1. należy nadać takiemu plikowi możliwość uruchamiania - w konsoli wydajesz polecenie:

chmod +x nazwa_pliku.run

  1. następnie uruchamiasz taki program (skrypt). Najczęściej tak jak opisał johny, ale możliwości jest więcej. Stąd czytać. Znów polecałbym - konsola, przejść do katalogu, gdzie zostało pobrane (zakładam, że to katalog Pobrane w domowym) i uruchomienie paczki na uprawnieniach zwykłego użytkownika. Dlaczego? Bo niektóre umożliwiają lokalne instalacje (co nie wymaga uprawnień administratora), te które wymagają uprawnień - najczęściej Cię powiadomią. Przede wszystkim jednak - uruchamiając je pierwszy raz ze zwykłego użytkownika, najczęściej mniej sobie możesz zaszkodzić.

 

 

 

Jeżeli to Ubuntu, Mint, Arch lub Manjaro to Team Speak 3 masz w podstawowym repo dostępny. Nie ma potrzeby instalacji z “run”

Zasada jest taka, że jeżeli masz dany soft dostępny w repo danej dystrybucji Linux to instalujesz go z repo, a RUN to ostateczność - zwykle to pliki programu wraz ze skryptem SH, który kopiuje je w odpowiednie miejsca w systemie i tworzy symlinki do wymaganych zależności bądź dołącza komplet potrzebnych mu bibliotek.

Tak zainstalowany program nigdy Ci się nie zaktualizuje przy aktualizacji systemu i może przestać działać.

do tego nawet doszedłem, nawet niektóre programy udało mi się zainstalować, ale np TeamSpeak niestety nie.

 

 

Mam Ubuntu - niestety w Centrum oprogramowania Ubuntu nie Widzę TeamSpeak - tak samo jak przez konsolę z komendą:

sudo apt-get install teamspeak

 

wyskakuje:

E: Nie udało się odnaleźć pakietu teamspeak

 

mimo, iż z podpowiedzi pewnej strony włączyłem repo partnerskie.

W repo ubuntu masz chyba “teamspeak-client” i “teamspeak-server”

W Centrum Oprogramowania po wpisaniu team_ przestaje dawać podpowiedzi. W terminalu nazwę teamspeak-client spróbuję jutro - właśnie wyłączyłem kompa. Dzięki :slight_smile:

Ot, taka ciekawostka: http://packages.ubuntu.com/search?keywords=teamspeak&searchon=all&suite=all&section=all :)

Cała paczka *.run, po jej odpaleniu w konsoli (nie trzeba żadnych uprawnień root) powoduje żądanie akceptacji licencji, a po jej zaakceptowaniu, dokonuje rozpakowania się do katalogu TeamSpeak3-Client-linux_amd64 (to wersja 64bit) w katalogu, w którym polecenie zostało wydane.

W tym katalogu masz skrypt: ts3client_runscript.sh,  który prawdopodobnie uruchamia program.

Tak zresztą wyglądałoby z łatwiejszej wersji pisania paczek :slight_smile: -  tu: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/teamspeak3 

Faktycznie wywalili z jakiegoś powodu TS3 z repo Ubuntu. Została tylko stara wersja 2.

No to nie pozostaje nic innego jak instalacja z RUN :stuck_out_tongue:

To nawet instalacja nie jest. *.run jest tylko skryptem, który powoduje rozpakowanie gotowych binarek, a wcześniej otwiera pytanie o zaakceptowanie licencji. Nawet uprawnień roota nie trzeba i nie wolno mieć.

To, czy wymagany jest dostęp z uprawnieniami root zależy w sumie gdzie skrypt chce umieścić pliki.

Na przykład w przypadku XAMPP większość plików trafia do katalogu /opt gdzie wymagany jest dostęp root (ze względu na prawa zapisu).

Aby zapisywać w /bin też wymagany root, więc to, czy *.run wymaga root, czy nie w gruncie rzeczy zależy, gdzie chce wypakować pliki.

Ten akurat po prostu rozpakowuje do podkatalogu, z którego został wywołany. Jak się wywoła to przez sudo, to zmienisz uprawnienia do tego katalogu i będzie co najmniej śmiesznie :slight_smile:

TeamSpeak ma instrukcję instalacji w pliku instal lub readme. TS się nie instaluje, po prostu uruchamiasz serwer. Pobierasz plik serwera. Tworzysz użytkownika teamspeak (bez hasła). Logujesz się na tego użytkownika poleceniem su lub wykonujesz takie polecenie su teamspeak -c “/sciezka/do/pliku/./teamspeak_server”.