Nowe posty

xx Dystrybucja pod HP Omen (6)
Wczoraj o 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
Wczoraj o 21:08:23
lamp Problem z Linux Lite po instalacji (0)
Wczoraj o 19:50:30
xx Ile pingwinów? (1)
Wczoraj o 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: Jak skopiować autorski program z jednego pc na drugi by działał bez instalki. ;p  (Przeczytany 2281 razy)

IMPERATUS

  • Gość
Witam, otóż mam za zadanie przenieść autorski działający program (nie za wybitny, dość prosty, ale pomysł na niego super, nie mój i nie chce go kraść tylko mam go przenieść powiedzmy właścicielowi jego z jednego pc na drugi). Program działa i odpala się w terminalu na pc na którym autor go zamieścił w terminalu jak i w trybie graficznym. Instalki do niego nie ma bo nie istnieje. Mam tylko dostęp do tego komputera bez uprawnień administratora na którym program działa i do jego wszystkich plików, do administratora się nie dostanę, gdyż bootowanie jest zablokowane a nie chce się bawić w bardziej skomplikowane przejmowanie hasła administratora. Mam pendrive ze skopiowanymi wszystkimi plikami tego o to programu..  dokładnie wszystkimi..  kopiuje je na drugi komputer pc tez z ubuntu 12.04 lts czystym mniej więcej do tych samych katalogów. W skrypcie znalezionym na 1 Pc (tym na którym program działa)  znajduje repozytoria, które mam pobrać mniej więcej by program działał. Instaluje je na PC2 (czystym ubuntu). Program w terminalu rusza po instalacji repozytoriów..  ale po chwili się wyłącza bez wyświetlenia błędów po prostu jakby skończył go robić i powraca do możliwości wpisywania poleceń. Wnioskuje, że nie widzi po prostu wszystkich potrzebnych mu plików do startu. Z Linuxa jestem dosłownie podstawowym użytkownikiem bardzo podstawowym wręcz. Poniekąd problem ten muszę rozwiązać.. więc sprawdzam i porównuje oba programy na PC1 i PC2..   są praktycznie takie same. W terminalu sprawdzam ukryte pliki itd. Różnice widzę tylko w tym, ze na PC1 niektóre pliki chyba wykonywalne są podświetlone na zielono w tym tez ten skrypt~ (plik tekstowy z wypisanymi repozytoriami nic wiecej) na którym był zapisane repozytoria bez których program w ogóle nie startował. Oraz parę innych ukrytych plików a w innym folderze dwa pliki które uruchamiają się pierwsze. Na PC2 na zielono oznaczone są tylko 2 główne pliki tego programu o rozszerzeniu sh. skrypt i reszta z plików z logami itd niestety się nie podświetlają na zielono czyli z mojego toku myślenia sądzę ze to jest przyczyną dlaczego program nie chce zadziałać na PC2 do końca i wyświetlić się w trybie graficznym tzn okienkowym jak zwał tak zwał..  Pliki które nie świecą się na zielono znajdują się na PC2 w osobnych katalogach mniej więcej tych samych jak na PC1, te które podświetliły się na zielono po instalacji repozytoriów znajdują się również tylko w jednym folderze. Kończąc moją dłuuuugą wypowiedz wiem.. i przepraszam (chciałem tylko wytłumaczyć najlepiej jak potrafię zaistniałą sytuację) Proszę o pomoc związaną z moim brakiem umiejętności jak pokazać programowi gdzie ma te pliki w drugim folderze na PC2 i by pracował prawidłowo dziękuje. Jeszcze jedno tak próbowałem wrzucić wszystko do jednego folderu i odpalić na PC2 tez efekt ten sam w terminalu. Pozdrawiam i dziękuje z góry za wszelką pomoc. Plików i zawartości z kodem nie mogę udostępnić z wiadomych powodów.

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2763
  • 1709
    • Zobacz profil
Cytuj
nie chce go kraść
1. My nie jesteśmy wstanie nic stwierdzić.
W takim wypadku jedyna osoba uprawniona do udzielenia Ci pomocy jest to sam autor programu.

Cytuj
kopiuje je ...  mniej więcej do tych samych katalogów.
.....  ale po chwili się wyłącza bez wyświetlenia błędów
2. Od pomagania z błędami programu jest autor programu.
 Zwłaszcza ze nie możemy zdebugować programu i nic o nim wiemy.
3. Mniej więcej skopiowałeś co, to mniej więcej działa.
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Offline pavbaranov

  • Users
  • Guru
  • *****
  • Wiadomości: 879
    • Zobacz profil
Tego typu sformułowania, jak: "praktycznie", "niemal". "mniej więcej" itd. oznaczają dokładnie jedno i to samo: "oba komputery, obie 'instalacje' są różne" :)

Jeśli w istocie jest to program autora i od niego masz pendrive z "dokładnie wszystkimi plikami", które jednakże po umieszczeniu ich w dokładnie takich samych, jak w oryginale katalogach - nie działa/działa nieprawidłowo, to spytaj autora o to jak, przy użyciu jakich narzędzi program został skompilowany. Różnica gcc, glib, bibliotek na komputerze, na którym to działa oraz na nowym, różnica systemów, może powodować, że taki program działać nie będzie.
Tak jak Ci napisał @1709 - to autor programu musi coś wiedzieć. Być może ma też źródła tego programu - wówczas po prostu trzeba skompilować (tym razem poprawnie, czyli - w przypadku Ubuntu - tworząc odpowiednią paczkę deb).

Możesz też sklonować dysk. Wówczas - jeśli ów dysk nie jest podzielony na partycję główną i /home, jedynym problemem pozostanie przełamanie hasła roota (a ewentualna reszta, to michałki).

Możesz - jeśli to binarki, a nie skrypty - poddać program choćby inspekcji przed gdb; jeśli skrypty - dokładnie przeczytać.

Niestety - bez znajomości programu nikt Ci nie odpowie "jak zrobić", bo zwyczajnie nie może mieć w tym zakresie wiedzy. Zwłaszcza większej od autora.

PS: Do "bootowania" komputera na GUI użytkownika nie jest wymagane hasło roota, zwłaszcza w Ubuntu. Gdzie zatem jest "dobra ściema"?

IMPERATUS

  • Gość
1709.   
         1. Zgadza się nie jesteście w stanie nic stwierdzić aczkolwiek ja na waszym miejscu miałbym takie wątpliwości dlatego tak napisałem.

         2. Autor programu jest nieznany znam tylko obecnego właściciela, który nie ma za bardzo czasu aby cokolwiek wytłumaczyć, skupię się więc na zadaniu.

         3. Zadziałał dopiero po pobraniu repozytoriów, tylko częściowo, więc śmiem sądzić iż, albo mu jeszcze brakuje paru repozytoriów lub nie widzi tego drugiego folderu przez coś..  Gdybym był chociaż tak obeznany z zasadami programowania w linuxie co w C# to skompilowałbym i po sprawie.. zaraz bym się dowiedział co go boli... a tu brak komunikatu o błędach.. skompilować nie wiem jak, w ogóle nie wiem dlaczego to jest w dwóch folderach a nie w jednym, ale to kwestia autora, ja chce, tyko i wyłącznie, aby ten program zadziałał na drugim komputerze i tego się trzymam, mimo wszystko dziękuje, za sugestie.



pavbaranov.

                      1. Z tego co sprawdzałem to tylko skrótu z pulpitu nie pobrałem tzw. dowiązania symbolicznego. :D Jednak 100% pewności nigdy nie mam w każdym razie masz racje.

                      2. Pendrive nie jest od autora. Sam skopiowałem wszystkie (według mnie) pliki programu z PC1 do którego mam dostęp.

                      3.  Jeśli jesteś w stanie mi powiedzieć jak mogę łatwo sprawdzić jakie biblioteki są zainstalowane na PC1 to bym prosił o poradę. Wtedy sprawdzę dokładnie i dla świętego spokoju wszystkie pobiorę na PC2.

                      4. Ułatwiło by o wiele jakby takowa paczka deb już byłą na PC1.. tylko ten skrypt zawierał przydatne informacje o repozytoriach poza tym nic przydatnego dla mnie nie znalazłem.
           
                      5. Jestem leniwy, ale o sklonowaniu dysku nie pomyślałem :D bardzo dobry pomysł, tylko jest właśnie problem z hasłem roota..  na PC1. Na PC2 udało mi się uzyskać bez problemu hasło roota dzięki pendrive z bootowalnym linuxem, jeśli chodzi o PC1 to wygląda na to, że ta opcja została zablokowana poprzez zablokowanie bootowania z usb. Nie pamiętam dokładnie, ale nie reagował lub wyświetlał coś w stylu brak uprawnień, gdy chciałem włączyć w trybie awaryjnym lub od razu z uprawnieniami administratora terminal dzięki wyżej wymienionemu nośnikowi z systemem w przypadku PC2 nie miałem tego problemu i uzyskałem hasło root, chyba że wiesz gdzie mogłem popełnić błąd to wtedy bym prosił o pomoc w uzyskaniu hasła root, klonuje dysk i po problemie :D

                      6. Moja wiedza w systemie linux jest zbyt mała, by zrobić to co sugerujesz "Możesz - jeśli to binarki, a nie skrypty - poddać program choćby inspekcji przed gdb" Wszystkie skrypty tzw. jeden który tam jest, przejrzałem i ma tylko 5 linijek z wymienionymi repozytoriami.

                      Dziękuje mimo wszystko, że się udzieliliście zwłaszcza tak szybko. Spróbuje na swoim osobistym komputerze zrobić w virtual boxie taki sam system ubuntu jeszcze raz w miarę identycznie wszystko stworzę jak na PC1, pobiorę te repozytoria i może tym razem ruszy... Każdy sposób uznaje za dobry, byle program zadziałał na PC2 :D Jeszcze raz dzięki za wszelką pomoc, jak mi się uda dam znać, jakby ktoś miał lepszy pomysł chętnie wysłucham. ;)
                     
                     

Offline pavbaranov

  • Users
  • Guru
  • *****
  • Wiadomości: 879
    • Zobacz profil
Sorry, ale maniana kompletna. Jeśli chcesz pomocy - weź wrzuć ten program (zawartość pendrive) gdzieś w chmurę i daj linka. Inaczej nic, nikt nie poradzi.
Autor nieznany? A licencja to co robisz umożliwia?

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2763
  • 1709
    • Zobacz profil
Jak znaleźć autora ?
1. W pomocy programu zobacz kto jest autorem programu.
2. Jeśli główny plik jest czytelny w notatniku to na gorze powinno cokolwiek pisać o programie.
3. Możesz poszukać w wyszukiwarce po nazwie programu.
3. Wyszukaj w menadżerze pakietów czy taki program istnieje.
4. Zobacz czy pakiet byl instalowany z pakietu deb
dpkg -S /sciezka/do/pliku
5. Zobacz czy program posiada opcje --help , lub man
program --help
man program
I tam zobacz czy cos pisze o autorze.
6. Jesli byl instalowany z pakietu .deb  wyświetl informacje o pakiecie
dpkg --info nazwa_pakietu.deb 

Cytuj
... Gdybym był chociaż tak obeznany z zasadami programowania w linuxie co w C# to skompilowałbym i po sprawie..
Jesli to jest program kompilowany i jesli nie dostaniesz od autora kodu zrodlowego to i tak nie skompilujesz bo nie masz z czego.
A do kompilowania nie trzeba znac zadnego jezyka programowania. A tylko do naprawy / poprawy kodu źródłowego.
« Ostatnia zmiana: 2018-08-07, 20:55:33 wysłana przez 1709 »
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

IMPERATUS

  • Gość
Tak jak mówiłem to program autorski. man itd. nie pomogą. Stworzyłem w virtualboxie maszynę wszystko system jak na PC1, nawet nazwy takie same. Pobrałem ze skrytpu repozytoria i nawet w terminalu nie chce wystartować na PC2 to mi się chociaż udało a tu już lipa..  automatycznie chce mi go pypar2 otwierać. Jutro sprawdzę na PC1 dpkg -S dziś nie mam już dostępu do PC1. Na PC1 pomogło mi to chyba, że jakiś problem z ubuntu wystąpił i w szczegółach były podane repozytoria jakie mogą pomóc w jego naprawie pobrałem wszystkie dla pewności potem te ze skryptu i przynajmniej w terminalu przynajmniej próbował startować..  Raczej się poddam z tym. Chociaż pewnie wystarczy pobrać właściwe repozytoria, których nie znam..  Mimo wszystko dziękuje za pomoc. :)

Offline pavbaranov

  • Users
  • Guru
  • *****
  • Wiadomości: 879
    • Zobacz profil
Stworzyłem w virtualboxie maszynę wszystko system jak na PC1, nawet nazwy takie same.

System docelowy (PC2) ma być "ten sam", a nie "tak samo wyglądający". Szczególnie, jeśli program jest kompilowany. Tego jednak nie wiemy (choć pytanie zadałem). Jeśli to jest binarka to jej skompilowanie na innym systemie (PC1), innej dystrybucji, innej wersji tejże dystrybucji itd. itp. może mieć wpływ na to, że na nieco choćby różniącym się systemie (PC2) już się nie uruchomi.
Stąd też podstawowy pomysł - jeśli brak źródeł i generalnie nic nie wiemy o tym programie (ani niczym innym), to klon systemu PC1 na PC2. Hasło roota (jeśli tu jest problem, bowiem mam co do tego wielkie wątpliwości) można zmienić i to zarówno na PC1, jak i na PC2 (w zasadzie nie jest to jakiś problem nie do ominięcia).

Offline badpixel

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 6
    • Zobacz profil
Mam tylko dostęp do tego komputera bez uprawnień administratora na którym program działa i do jego wszystkich plików, do administratora się nie dostanę, gdyż bootowanie jest zablokowane a nie chce się bawić w bardziej skomplikowane przejmowanie hasła administratora.
Nawet nazwy programu niepodałeś (a na pewno jakaś jest)

Poza tym bootowanie nie może byc zablokowane, skoro system startuje (zapewne chodzi o dynamiczną edycję konfiguracji gruba z jego poziomu).

Ale jeżeli odpalenie rescue z pendrivea/płyty, złożenie macierzy(lvm, mdadm), podmontowanie systemów plików (mount)i wywołanie 'passwd' ze chroota Cię przerasta, to lepiej odpuść i zleć to zadanie komuś, kto ma jakieś podstawowe pojęcie o systemie linux. To co cię czeka dalej, będzie o wiele bardziej skomplikowane niż zmiana hasła administratora na niezaszyfrowanym dysku.
Jakby Ci się jednak chciało, to polecam nauczyć się następujących komend: strace, cp -av, passwd, chmod, chown, ldd(widać których bibliotek brakuje), su -l (podstawa jak chce się coś debugować, co startuje z innego konta), strukturę pliku /etc/passwd .bashrc oraz .bash_profile (o ile w /etc/passwd jest bash jako shell). Poza tym trzeba wiedzieć jak przekierowywać standardowe wyjście+błędu do pliku, przydatny też będzie znajomość grepa.

O ile nie ma jakiś bardziej wymyślnych zabezpieczeń przed kopiowaniem, to w strace powinno wszystko wyjść i robota niepowinna zająć więcej niż godzinę, jak się wie co robi. Jak jesteś programistą, to powinieneś to opanować te polecenia maks w ciągu paru godzin. A jak nie, to ześ ciapa albo leń i lepiej komuś zapłacić.