Jak zainstalować aplikacje na osobnym dysku twardym?

10

Byłem tak dobry z oknami, teraz czuję się jak kompletny idiota.

Mam dysk SSD dla Ubuntu i chcę zainstalować większość moich programów na osobnym dysku twardym, ale nie mam pojęcia, jak to zrobić.
Wszystkie wyszukiwania, których próbowałem, pojawiają się tylko w przypadku instalacji z podwójnym uruchomieniem.

  • (ROZWIĄZANE ->) Mam również problemy ze zlokalizowaniem „/ etc /”. W szczególności, aby zmodyfikować Conky.
    Wyszukiwanie tego terminu ujawnia tylko przypadki, w których ludzie mówią ci o dostępie do tego pliku, a nie jak się do niego dostać.
plaguedoctor
źródło
1
Spójrz na to , zaczniesz.
Mitch
Miałem wrażenie, że wszystko rozciągało się od folderu domowego. Ups Strona, którą podlinkowałeś, nie była pomocna w związku z moim problemem, ale czytam ją teraz i dużo się uczę, więc dziękuję.
plaguedoctor
Dodałem tagi mount i fstab; możesz zrobić to, co opisujesz, ręcznie ustawiając określone systemy plików do montowania na określonych partycjach lub dyskach.
belacqua
@belacqua czy jest jakiś inny sposób? Nie chcę tylko konkretnych systemów plików na innym dysku, chcę wszystkich systemów plików poszczególnych programów. W ten sposób mogę posortować je według intensywności mojego systemu, mając gry / virtualbox / etc w całości na moim dysku SSD i rzeczy takie jak libreoffice / thunderbird w całości na jednym z dysków twardych.
plaguedoctor
Nie jest łatwo ustalić, gdzie może znajdować się dana instalacja i jej pliki - zobacz odpowiedzi w podanym linku Mitch. Możesz także korzystać z dowiązań symbolicznych, ale zalecam, aby zacząć od prostego. Znajdź przykładową aplikację, zadaj tutaj konkretne pytanie (lub zmodyfikuj ją, aby była mniej ogólna) i przejdź od tego momentu. Lub ostrożnie eksperymentuj.
belacqua

Odpowiedzi:

22

Istnieje duża różnica między Windows a GNU / Linux. W systemie Windows powszechne jest, że każdy program wraz ze wszystkimi bibliotekami, od których zależy, jest instalowany w osobnym folderze. Prowadzi to często do marnowania miejsca na dysku, ponieważ biblioteki są instalowane wiele razy dla każdego programu, który ich używa.

W systemie Linux programy są instalowane zgodnie ze standardem hierarchii systemów plików (FHS). Oznacza to, że biblioteki, od których zależą programy, są zainstalowane we wspólnej, dedykowanej lokalizacji, tak więc zwykle są instalowane tylko raz, bez względu na to, ile programów ich używa. Ponadto programy są budowane w taki sposób, że wszystkie używają tej samej wersji określonej biblioteki. Oszczędza to miejsce na dysku (i pamięci RAM w czasie wykonywania), ale ma tę wadę, że nie można swobodnie instalować programów na różnych partycjach lub dyskach twardych, przynajmniej nie bez edycji plików konfiguracyjnych systemu (na przykład /etc/ld.so.conf.d aby uwzględnić różne foldery biblioteki).

Ponieważ system pakietów Debiana został zaimplementowany z myślą o FHS, o ile mi wiadomo, nie ma łatwego sposobu na zainstalowanie pakietów Debiana w folderze innym niż ten, w którym miały zostać umieszczone i aby działały bez ręcznego przenoszenia i edycja plików później. Jest tak, ponieważ ścieżki są często zakodowane na stałe w czasie kompilacji. Więc nawet jeśli zainstalujesz pakiet w innym folderze, na przykład za pomocą dpkg --instdir=folder/ package.debwiersza poleceń, program będzie nadal szukał swojej konfiguracji w „/ etc”, nie w „folderze / etc”, ale w plikach konfiguracyjnych dostarczonych z pakiet oczywiście został zainstalowany w folderze / etc ... Program również nie zostanie dodany do menu, ponieważ pliki menu powinny znajdować się w „/ usr / share applications”, a nie w folderze / usr / share / Aplikacje.

Możesz oczywiście ręcznie skonfigurować i skompilować program z jego kodu źródłowego, aby instalował części binarne i części danych w dowolnym miejscu, jednocześnie instalując pliki konfiguracyjne w lokalizacjach zgodnych z FHS, ale zalecam to tylko zaawansowani użytkownicy. Jeśli zamierzasz skompilować ze źródła, spójrz na checkinstall , narzędzie, które automatycznie tworzy pakiety Debiana.

Inną opcją, która została zasugerowana na linuxfromscratch , jest rozpakowanie pakietu do odpowiedniej lokalizacji, a następnie utworzenie dowiązań symbolicznych do wszystkich zainstalowanych plików w odpowiednich lokalizacjach FHS.

Ponieważ w komentarzach odnosiłeś się do gier: Wiele gier, które nie są kupowane za pośrednictwem Centrum oprogramowania Ubuntu, można wykonać jako plik wykonywalny instalatora, a następnie można je oczywiście zainstalować w dowolnym folderze, zwykle podfolderze katalogu domowego. Gry Windows, które są uruchamiane przy użyciu WINE, można również zainstalować w dowolnym katalogu. W przypadku wina istnieje zmienna środowiskowa o nazwie WINEPREFIX, za pomocą której można skonfigurować wiele niezależnych folderów WINE, w tym każdy z własnym wirtualnym dyskiem C:. Przeczytaj stronę podręcznika WINE, aby uzyskać więcej informacji.

Nawet jeśli gry / programy są dostarczane jako pakiety Debiana, możesz spojrzeć na zawartość pakietu w swoim ulubionym menedżerze archiwów. Jeśli gra ma zostać zainstalowana w / opt, zazwyczaj możesz bezpiecznie zainstalować ją w innym folderze, ponieważ / opt jest często używany jako miejsce instalacji programów, które nie są zgodne z FHS.

źródło duszy
źródło
Prawidłowe i godne pochwały O
Rinzwind
1
Niemniej jednak nie jest to kompletne, ponieważ nie wyjaśniłem szczegółowo, co byłoby wymagane, aby pakiet został zainstalowany w dowolnej lokalizacji, które pliki należy edytować i jakie zmienne środowiskowe należy ustawić. Po prostu obawiam się, że wtedy stałaby się powieścią średniej wielkości ...
soulsource
1
Nie zawracałbym sobie głowy. Po prostu zamontuj / etc / elsewhere. Zajmuje 90% obciążenia płyty z SSD.
Rinzwind
5

TL; DR

  1. Uruchom zewnętrzny dysk USB za pomocą właśnie zainstalowanej wersji Ubuntu i zakładam, że /dev/sdajest to twój dysk SSD i /dev/sdbdysk twardy.

  2. Utwórz partycję na dysku twardym, aby zawierała wszystkie aplikacje, które chcesz zainstalować (powiedzmy 64 GB) za pomocą programu gparted i zakładam , że będzie to trzecia partycja, którą utworzysz na dysku twardym ( /dev/sbd3)

  3. wykonaj następujące polecenia:

    mkdir /media/apps
    mount /dev/sdb3 /media/apps
    mkdir /media/apps/usr
    cp --preserve=all --recursive /opt /media/apps
    cp --preserve=all --recursive /usr/bin /media/apps/usr
    
  4. sudo nanofstabna /dev/sda1/etc/zawierać następujące prawo po /wejściu (katalog główny)

    /dev/sdb3  /media/apps          ext4   errors=remount-ro  0   0 
    /opt       /media/apps/opt      none   defaults,bind      0   0
    /usr/bin   /media/apps/usr/bin  none   defaults,bind      0   0
    
  5. uruchom ponownie i przetestuj

Długa wersja:

Unix / Linux / Ubuntu został pomyślany jako system operacyjny serwera z pulpitem, a Windows został pomyślany jako system operacyjny, a serwer powstał później.

Tak więc Linux Hierarchia systemu plików pozwala na nieograniczoną liczbę dysków / partycji, aby być zlokalizowanymi w dowolnym miejscu i powiązać je z właściwym dyskiem lub partycją z całkowitą przejrzystością dla użytkownika, podczas gdy system operacyjny Windows jest ograniczony do maksymalnie 24 dostępnych dysków / partycje ( C:przez Z:as A:i B:są zarezerwowane dla dyskietek).

Większość aplikacji, które instalujesz samodzielnie, jest instalowanych /opt/i /usr/bindlatego zainstaluj Ubuntu normalnie, a następnie wykonaj poniższe kroki, w których zapewniam, że /dev/sdamasz dysk SSD, /dev/sdbdysk twardy i /dev/sddpamięć USB:

  1. Uruchom zewnętrzny dysk USB za pomocą właśnie zainstalowanej wersji Ubuntu.
  2. Utwórz partycję na dysku twardym, aby zawierała wszystkie aplikacje, które chcesz zainstalować (powiedzmy 64 GB) za pomocą programu gparted i zakładam , że będzie to trzecia partycja, którą utworzysz na dysku twardym ( /dev/sbd3)
  3. Zamontuj tę partycję w katalogu tymczasowym:

    mkdir /media/apps
    mount /dev/sdb3 /media/apps
    
  4. skopiuj istniejące /opti /usr/bintam:

    mkdir /media/apps/usr
    cp --preserve=all --recursive /opt /media/apps
    cp --preserve=all --recursive /usr/bin /media/apps/usr
    
  5. sudo nanofstabna /dev/sda1/etc/zawierać następujące prawo po /wejściu (katalog główny)

    /dev/sdb3  /media/apps          ext4   errors=remount-ro  0   0 
    /opt       /media/apps/opt      none   defaults,bind      0   0
    /usr/bin   /media/apps/usr/bin  none   defaults,bind      0   0
    
  6. uruchom ponownie i przetestuj

  7. Jeśli wszystko działa poprawnie, uruchom ponownie pamięć USB i usuń wszystko z /dev/sda1/optoraz, /dev/sda1/usr/binaby odzyskać miejsce na dysku, które jest nadal używane przez przestarzałe katalogi już zamontowane gdzie indziej.

Ostrzeżenie: ostatnie polecenie może również spowodować awarię systemu w mało prawdopodobnym przypadku /dev/sbd3nie montowania z powodu awarii sprzętu

Fabby
źródło
System Windows obsługuje tę samą obsługę montowania dysków na ścieżkach innych niż root od około dekady. Te litery dysków mogą być również mapowane na użytkownika, więc H: \ może być katalogiem osobistym użytkownika. Nic dziwnego: linia Windows NT jest inspirowana systemem VMS, w dużej mierze systemem dla wielu użytkowników. Unix nie był pomyślany jako serwerowy system operacyjny: AT&T produkowało przełączniki telefoniczne. A UNIX w szczególności różni się od inspiracji Multics tym, że początkowo był mniej zorientowany na wielu użytkowników - po prostu nie było takiej potrzeby w przełączniku telefonu.
MSalters
@MSalters Wow, nie znałem bitu przełączającego telefon AT&T ... Pamiętam część VMS / NT i że M $ zatrudnił DEC Principle Engineer, a także część OS / 2, ale wcześniej była to Single- uprzednio wielozadaniowa powłoka pulpitu użytkownika. > :-) Zaktualizowano!
Fabby
1
Windows obsługuje również dyski non-list ( 1:, !:etc.), podobnie jak niektóre wersje DOS (z innymi postaciami, [:etc.). System Windows nie jest ograniczony do 24 partycji (wyszukaj punkty instalacji woluminów). Wczesne wersje systemu Windows (przed 95) korzystały z wielozadaniowości kooperacyjnej, nie uprzedzającej, między procesami Windows; tylko maszyny wirtualne DOS były uprzednio wielozadaniowe (w trybie rozszerzonym).
Stephen Kitt
1
Pracowałem w AT&T, w grupie UNIX. Nie zaczął życia jako przełącznik telefonu.
stevegt,
@MSalters Unix nie wydaje się mieć nic wspólnego z przełącznikami telefonu, poza tym, że odpowiedzialna firma opracowała oba; i wydaje się, że był używany przez wielu użytkowników bardzo wcześnie, mniej więcej w czasie, gdy nazwa została ukuta. Zobacz tę odpowiedź na SE RC.
Peter - Przywróć Monikę
2

Rozwiązaniem, którego użyłem na moim Chromebooku, jest nie instalowanie pakietów, ale raczej pobranie ich odpowiednika .tar.gz.

To może nie być to, czego szukasz, ale jeśli masz bardzo mały dysk i chcesz oddzielić ważne oprogramowanie (pulpit GNOME, przeglądarkę internetową) od dodatkowego oprogramowania (GIMP, IDE, gry), aby zaoszczędzić na lokalnej przestrzeni i utrzymuj komputer w pracy bez zewnętrznego dysku, to najlepsze jak dotąd rozwiązanie IMO.

acerspyro
źródło