2010-07-09 16 views
18

Tôi có quyền truy cập vào máy tính trong thư viện công cộng và tôi muốn thử một số C++ và có thể là mã khác. Vấn đề là không có g ++ được cài đặt và tôi không thể cài đặt nó bằng cách sử dụng các gói vì tôi không có quyền truy cập root. Có cách nào "thông minh" để tạo môi trường hoàn chỉnh cho lập trình trong thư mục chính không?Cài đặt gcc trên linux mà không có đặc quyền gốc

Tôi đã cài đặt gcc (tôi có thể biên dịch mã C). Ngoài ra, tôi có một thư mục nhà phù hợp. Tôi không biết nơi để tìm tiền biên dịch g + +, tôi chỉ tìm thấy nguồn nhưng tôi không biết phải làm gì với nó. Tôi đã cố gắng yêu cầu họ cài đặt nhưng nó không hoạt động :)

+0

Thư viện có cài đặt gcc không? – Omnifarious

+0

Tôi có thể biên dịch mã nguồn C bằng gcc. –

Trả lời

8

Bạn có thể chạy tập lệnh cấu hình với tham số --prefix: ../gcc-4.5.0/configure --prefix=/home/foo/bar. Vì rất có thể thư viện chuẩn C++ khác với thư viện trên hệ thống của bạn, bạn phải đặt export LD_LIBRARY_PATH=/home/foo/bar/lib trước khi bạn có thể bắt đầu một chương trình được biên dịch bởi trình biên dịch này.

+2

Điều đó phụ thuộc vào việc có một chuỗi công cụ biên dịch hiện có để bootstrap từ đó. – reece

+1

Và tệp tiêu đề. – Omnifarious

+0

Tôi đã thử ./configure --prefix = ... nhưng nó cho tôi: định cấu hình: lỗi: không thể tìm thấy install-sh, install.sh hoặc shtool trong "." "./ .." "./../ .." –

1

Một lần, một thời gian dài trước đây (1992 hoặc hơn), tôi đã trải qua một cái gì đó tương tự như thế này khi tôi mua một hệ thống SCO không có môi trường phát triển. Bootstrapping nó lên để có một môi trường phát triển đầy đủ là một nỗi đau khổng lồ, và không phải ở tất cả các dễ dàng. Có tập tin tiêu đề thư viện hoặc gcc trên một hệ thống sẽ làm cho công việc của bạn dễ dàng hơn rất nhiều.

Điều đó tùy thuộc rất nhiều vào mức độ đáng ghét của thư viện về các loại nội dung được cài đặt. Nếu không có gcc ở đó, công việc của bạn sẽ trở nên khó hơn một chút. Nếu không có tập tin tiêu đề cho glibc ở đó, công việc của bạn là một LOT khó hơn.

Ngoài ra, bạn có nhận được tài khoản trên hệ thống để bạn có thư mục chính nhất quán từ đăng nhập để đăng nhập không?

Nếu bạn không có gcc ở đó, bạn cần phải tìm một nhị phân được biên dịch trước của gcc/g ++ và cài đặt nó ở đâu đó. Nếu bạn không có tệp tiêu đề ở đó, bạn cần phải tìm các bản sao của những tệp đó và đặt chúng trên hệ thống.

Không có cách nào 'chuẩn' cài đặt gcc trong thư mục chính của bạn. Tất cả các giải pháp sẽ có một số cách liên quan đến tay.

Bạn đã hỏi thủ thư nếu họ có thể thay đổi những gì được cài đặt vì bạn muốn tìm hiểu một chút về lập trình và chỉ có quyền truy cập vào máy tính của họ để làm điều đó? Đó cũng có thể là giải pháp dễ nhất.

Từ nhận xét của bạn có vẻ như bạn có gcc và nếu bạn có thể biên dịch mã C, bạn có các tệp tiêu đề thư viện. Vì vậy, bây giờ nó là một vấn đề của thực sự biên dịch phiên bản của riêng bạn của g++. Bạn có thể tìm cách lôi kéo người quản lý gói trên hệ thống cài đặt gói nhị phân ở đâu đó khác ngoài thư mục hệ thống. Tôi nghĩ giải pháp này ít thú vị hơn là biên dịch riêng của bạn và tôi nghĩ rằng cũng có thể có những vấn đề tinh tế khi gói được cài đặt có thể mong đợi tìm thấy những thứ ở những nơi cụ thể và không tìm thấy chúng ở đó.

Điều đầu tiên cần làm là đảm bảo bạn đã tải xuống đúng nguồn cho gói gcc. Nơi để tìm thấy đó là GNU United States mirror page. Bạn muốn tìm tệp gcc-4.5.0.tar.bz2 hoặc gcc-4.5.0.tar.gz trên trang mirror mà bạn chọn. Nó có thể nằm trong thư mục gcc và thư mục con gcc-4.5.0.

Sau khi bạn tải xuống ứng dụng đó, bạn nên hủy cài đặt. Nói chung, bạn không nên xây dựng gcc trong thư mục mà bạn bỏ nó vào. Vì vậy, tạo một thư mục anh chị em khác mà bạn thực sự muốn xây dựng nó trong nhãn gcc-build. Sau đó, lệnh bạn muốn là ../gcc-4.5.0/configure --prefix=$HOME/.local --enable-languages='c c++'.

gcc yêu cầu phải cài đặt một số gói khác để có thể biên dịch chính nó. Bạn có thể sử dụng cùng một dòng --prefix cho các gói này để cài đặt chúng ở cùng một nơi. Trang web gcc có list of pre-requisite packages.

$HOME/.local là loại địa điểm được chấp nhận chuẩn cho mọi thứ cài đặt cho mỗi người dùng.

+0

Tôi đã cài đặt gcc (tôi có thể biên dịch mã C). Ngoài ra, tôi có một thư mục nhà phù hợp. Tôi không biết nơi để tìm tiền biên dịch g + +, tôi chỉ tìm thấy nguồn nhưng tôi không biết phải làm gì với nó. Tôi đã cố gắng yêu cầu họ cài đặt nhưng nó không hoạt động :) –

+0

@ user287655 - Tôi sẽ thêm nhận xét này vào câu hỏi của bạn để làm rõ thêm. – Omnifarious

+0

Nhưng đừng cố gắng xây dựng một phiên bản mới của GCC. Theo https://gcc.gnu.org/install/prerequisites.html GCC cần trình biên dịch C++ 98 trừ khi bạn đang xây dựng GCC trước 4.8 cho phép bootstrapping bằng trình biên dịch C89 –

0

Nếu bạn có fakeroot, bạn có thể sử dụng để đặt ~/some-path làm gốc để cài đặt các gói. Ngoài ra, bạn có thể thiết lập môi trường chroot để thực hiện tương tự.

Với điều này, bạn có thể sử dụng dpkg -i package.deb để cài đặt (các) gói gcc trên hệ thống của mình. Bạn sẽ cần tải xuống và cài đặt từng gói riêng lẻ (ví dụ: từ trang web debian) - ít nhất binutils, glibc, linux-headersgcc.

Nếu bạn đang sử dụng một hệ thống khác, bạn sẽ cần nhận đúng gói cho hệ thống đó và cài đặt chúng bằng cách sử dụng trình quản lý gói tương ứng.

7

Nếu bạn muốn cài đặt nó như là một người dùng cục bộ

GNU GSRC cung cấp một cách dễ dàng để làm như vậy

Link: http://www.gnu.org/software/gsrc/

Sau khi cấu hình, chỉ cần xác định các lệnh sau:

cd gsrc 
make -C pkg/gnu/gcc 
make -C pkg/gnu/gcc install 

Bước thứ hai cũng có thể được thay đổi để tăng tốc cho hệ thống N-core:

make -C pkg/gnu/gcc MAKE_ARGS_PARALLEL="-jN" 
+1

Tôi khuyên bạn nên phát hành ổn định (như 2013.07) thay vì thân cây, tải xuống từ: http://ftp.gnu.org/gnu/gsrc/ – canesin

+0

Điều này cũng sẽ cài đặt phiên bản mới của tiêu chuẩn lib C++? –

Các vấn đề liên quan