Tworzenie statycznego pliku binarnego


14

Zainstalowałem aplikację [np. Fdisk]. Wymagało to jednak bibliotek do wykonania. Szukam narzędzia / narzędzia, które pomoże mi stworzyć statyczny plik binarny z już zainstalowanych plików binarnych. Aby móc go używać w dowolnym miejscu.

Jedyne niezawodne narzędzia, które znalazłem, ErmineLightpochodzą stąd , ale to jest shareware.

Czy jest dostępne jakieś oprogramowanie typu open source dla tego samego?

EDIT fdisk to tylko przykład. Większość czasu pracuję na LFS, więc jeśli muszę użyć dowolnego narzędzia, muszę postępować zgodnie z instrukcjami jak

  1. Pobierz źródło
  2. skonfigurować
  3. robić
  4. zrobić test
  5. dokonać instalacji,

Tak więc, aby zaoszczędzić czas, szukam rozwiązania, w którym utworzę statyczny plik binarny z Debiana lub Fedory lub z innej rozproszenia, wypróbuj go na LFS, a jeśli działa dobrze lub zgodnie z moimi wymaganiami, zrobię to idź z kodem źródłowym do kompilacji.


1
czy celem jest po prostu łatwość transferu (tj. położyć go na usb, nosić gdziekolwiek z tym łukiem procesora)?
Mike Pennington

Odpowiedzi:


15

Jeśli fdisk jest tylko przykładem, a Twoim celem jest tworzenie statycznych plików wykonywalnych z plików dynamicznych, wypróbuj Elf statifier . Istnieje nawet porównanie z Ermine (przez dostawcę Ermine, więc zastrzeżenie (nie) emptor) . Zauważ, że

  • Jeśli masz wiele plików wykonywalnych, ich łączny rozmiar prawdopodobnie będzie większy niż łączny rozmiar dynamicznie połączonych plików wykonywalnych plus niezbędne biblioteki dynamiczne.
  • Istnieją funkcje GNU libc, które mogą nie działać w statycznie powiązanych plikach wykonywalnych, takie jak NSS (bazy danych nazw użytkowników, nazw hostów itp.) I funkcje związane z ustawieniami regionalnymi.

Jeśli Twoim celem jest posiadanie małego, przenośnego pakietu narzędzi systemowych, szukasz BusyBox , pakietu podstawowych narzędzi przeznaczonych dla systemów wbudowanych (w tym fdisk). Możesz być także zainteresowany mniejszą standardową biblioteką niż Glibc, na przykład dietlibc lub µClibc .


1
Próbowałem statystykę Elfów, ale ku mojemu zaskoczeniu. To nie działało. To segfuje. Próbowałem wiele razy z wieloma dystrybucjami z wieloma narzędziami.
SHW

1
Prawdopodobnie segreguje się w losowaniu adresu: wyjaśniono to tutaj: linux-magazine.com/Issues/2009/105/Ermine-vs.-Statifier
Rmano

0

Cóż ... to wygląda na bardzo zły pomysł. Ale jest to możliwe.

Ponieważ fdisk jest open source, po prostu chwyć jego źródło i spójrz na Makefile. Powinieneś znaleźć opcję, która przekaże „-static” gcc podczas kompilacji.

Nie jestem guru C / C ++, ale o ile wiem, tworzenie statycznie linkowanego pliku binarnego z istniejącego dynamicznie linkowanego pliku binarnego nie jest możliwe.

Jeśli chcesz go używać w dowolnym miejscu, polecam użyć niewielkiej dystrybucji serwisowej, która rozpocznie się w ciągu kilku sekund i pozwoli ci wszystko zmodyfikować.

Wydaje mi się to bardziej sensowne, ponieważ prawdopodobnie będziesz chciał zmodyfikować dysk, na którym działa instalacja Linux / UNIX.


Twoja odpowiedź wydaje się sprzeczna, powiedziałeś „… bardzo zły pomysł. Ale jest to możliwe”, a następnie „… utworzenie statycznie powiązanego pliku binarnego z istniejącego dynamicznie powiązanego pliku binarnego nie jest możliwe”. Proszę wyjaśnić swoją odpowiedź, byłoby to najbardziej pomocne.
JM Becker

@TechZilla: tworzenie statycznego pliku binarnego jest możliwe, po prostu nie, dla każdego tiktaka, tworzenie jednego z istniejącego dynamicznie połączonego pliku binarnego . Jednak zobacz zaakceptowaną odpowiedź na niektóre możliwe umiejętności wykonania tego drugiego. [Uwaga: komentarz przeznaczony bardziej dla przyszłych czytelników niż krytykowanie czegokolwiek, co tu jest.]
Lindes

-3

możesz również użyć ELFex Linker , jego całkiem fajnego programu, który właśnie odkryłem, jego GUI i może tworzyć statyczne pliki wykonywalne z dynamicznego pliku wykonywalnego.


link nie działa.
Jakuje

Link działa dla mnie i wydaje się, że bezpośrednio odpowiada na pytanie. Sugeruję, że to nie jest spam.
roaima

Link działa dla mnie. Strona zawiera liczbę literówek / błędów gramatycznych / redakcyjnych, których można oczekiwać od pracy profesjonalnego programisty - więcej niż można oczekiwać od profesjonalnej strony internetowej, mniej niż można oczekiwać od wiadomości e-mail typu phishing. Mniej więcej tak samo jak powyższy post, pomyśl o tym. Wydaje się podejrzane, że ten nowy użytkownik dołączy do Stack Exchange w samą porę, aby opublikować link do czegoś, co wydaje się być zupełnie nową stroną internetową.
G-Man mówi „Przywróć Monikę”
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.