2015-07-18 15 views
6

Sytuacja: Zainstalowana wersja systemu Linux, próba nauczenia się kodowania c. Pobiera konfigurację za pomocą sudo apt-get install-essential. Otwarty typ nano w moim koduNie można skompilować przy użyciu make | błąd krytyczny Brak miejsca na urządzeniu

#include <stdio.h> 

int main(int argc, char *argv[]) 
{ 
     puts("Hello World.\n"); 
     return 0; 
} 

otwarta kolejna zakładka konsola, typy dokonać w EX1 wtedy mój świat obraca się w dół do najciemniejszych otchłani mam jeszcze doświadczenia na mój pierwszy linux distro.

[email protected]:~/Documents/C$ make ex1 
cc -Wall -g ex1.c -o ex1 
ex1.c:7:1: fatal error: error closing /tmp/cc8d7Oap.s: No space left on device 
} 
^ 
compilation terminated. 
make: *** [ex1] Error 1 


[email protected]:~/Documents/C$ df -h 
Filesystem  Size Used Avail Use% Mounted on 
/dev/sdb5  4.0G 3.8G  0 100%/
none   4.0K  0 4.0K 0% /sys/fs/cgroup 
udev   7.9G 8.0K 7.9G 1% /dev 
tmpfs   1.6G 1.4M 1.6G 1% /run 
none   5.0M  0 5.0M 0% /run/lock 
none   7.9G 8.1M 7.9G 1% /run/shm 
none   100M 28K 100M 1% /run/user 
/dev/sdb2  96M 29M 68M 30% /boot/efi 
/dev/sdb7  11G 248M 9.5G 3% /home 

wszelka pomoc jest doceniana.

+1

Sprawdź to: http://stackoverflow.com/questions/14693131/gcc-no-space-left-on-device – kitz

+0

Czy powinienem rozszerzyć moją partycję root? lub oddzielić partycje tmp i root? – bannji

+0

Rozdzielanie '/ tmp' z'/'zdecydowanie jest dobrym pomysłem. – alk

Odpowiedz

8

Partycja zawierająca folder główny (/) jest w 100% pełna. Folder główny zawiera obecnie także folder /tmp, który jest używany podczas kompilacji do przechowywania plików tymczasowych. Jako folder główny i przy tym folder tmp jest pełny, to się nie powiedzie.

Aby obejść ten problem, należy dodać więcej miejsca lub zreorganizować istniejący.

Jako obejście zrobić

mkdir ~/tmp 
export TMPDIR=~/tmp 

i ponowić kompilację.


elastyczny sposób organizowania systemu plików używa oddzielnych partycji dla

/ 
/usr 
/home 
/var 
/tmp 

Leniwe podejście byłoby połączyć /tmp/ do /var/tmp. Może to jednak powodować problemy, takie jak w przypadku czyszczenia systemu operacyjnego, który może obsługiwać zawartość o numerze /var/tmp, różniącą się od zawartości w /tmp. To jest zawartość /tmp/ zostanie usunięta na każdym rozruchu, gdzie nie byłoby /var/tmp.

+0

W jaki sposób mogę przeprowadzić reorganizację moich partycji? W ten sam sposób, w jaki zrobiłem tmp? czy to tylko przekierowanie? – bannji

+0

To byłoby kolejne pytanie. Zanim go poznasz, możesz przeczytać, prawdopodobnie zaczynając od tego: http://serverfault.com/q/449395 – alk

0

tutaj jest moje wyjście z DF:

[857][rkwill.rkwill-desktop: /home/rkwill]$ df -h -T 
Filesystem  Type  Size Used Avail Use% Mounted on 
/dev/sda1  ext4  910G 16G 849G 2%/
none   tmpfs  4.0K  0 4.0K 0% /sys/fs/cgroup 
udev   devtmpfs 3.4G 4.0K 3.4G 1% /dev 
tmpfs   tmpfs  684M 1.5M 683M 1% /run 
none   tmpfs  5.0M  0 5.0M 0% /run/lock 
none   tmpfs  3.4G 96K 3.4G 1% /run/shm 
none   tmpfs  100M 68K 100M 1% /run/user 

Można zauważyć, że moja partycjonowania jest bardzo proste (partycja wymiany jest ~ 6gigs)

Rzeczywista dysk jest 1 bajt tera.

dyski tera byte są bardzo tanie teraz-a-dni.

Cały twój dysk wydaje się być ~ 33gig. To było świetne w czasach MS-DOS i wczesnych wersji Linuksa.

Jednak mój linux ubuntu 14.04 używa tylko ~ 26gigs dysku

(i mam wiele narzędzi, dodać dodatki, zdjęcia, wideo, kod źródłowy dla kilku projektów, itp itd)

zasugeruj wykonanie pierwszej instalacji (dopóki nie dowiesz się więcej o tym, jak wszystko będzie działać) tylko z partycjami/i swap.

Kiedy używam wielu partycji, organizuję się podobnie do sugestii @alk, dodając partycję dla Windows, dla/lib i dla/etc.

Takie partycjonowanie pozwala na szybszy dostęp na moich serwerach, z wieloma dyskami twardymi i bezpieczniejszymi trybami awaryjnymi, ale nie jest to warte mojej pracy na komputerze.

Mój pulpit ma twardy dysk z partycjonalną zewnętrzną terą dla kopii zapasowych.

+0

I dni dysków GB MSDOS, gdzie nie ma ich w pobliżu. Pamiętam, że mój pierwszy dysk 20MB, który po przeliczeniu na EUR kosztował mnie około 400EUR. Tak MB, nie GB ... :-) Ahyes, to były czasy, kiedy ten facet stwierdził, że "* 640KB [RAM] powinno wystarczyć ... *", a wersja dla Linuksa zaczęła się od '0'. – alk