Làm cách nào để biết Ubuntu cài đặt chương trình ở đâu và làm thế nào để biết nơi chương trình hiện tại đã được cài đặt?


10

Hiện tại tôi hoàn toàn mới với Ubuntu / Linux, sử dụng Ubuntu Server. Chỉ cần cố gắng để tìm ra một cái gì đó cơ bản.

Làm thế nào bạn có thể cho biết nơi bạn đang cài đặt một chương trình. Ví dụ: tôi vừa cài đặt công cụ tìm kiếm Nhân sư bằng cách đặt tarball mà tôi đã tải xuống từ trang web của họ vào:

/home/sphinx

danh mục. Tôi đã tạo thư mục nhân sư để đặt tarball đó. Sau đó, tôi chạy các lệnh sau:

tar xvzf sphinx-0.9.8.1.tar.gz
cd sphinx-0.9.8.1/
./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql

và sau đó:

make
sudo make install

Bây giờ tôi có rất nhiều tập tin trong thư mục nơi tôi chạy các lệnh này. Đây có phải là bản cài đặt Spynx của tôi hay nó đã cài đặt ở nơi khác?

Trong windows nếu bạn chạy trình cài đặt (tệp .exe) bất cứ nơi nào chương trình vẫn sẽ cài đặt trong thư mục C: \ Program Files của bạn. Có điều gì đó tương tự áp dụng cho linux khi tất cả các chương trình được cài đặt ở vị trí trung tâm hoặc bạn có thể cài đặt chương trình ở bất kỳ đâu trên hệ thống.

Câu hỏi

  1. Tôi muốn giữ tất cả các chương trình đã cài đặt của mình ở một nơi để đâu là nơi thích hợp cho việc này trong điều kiện thực hành tốt nhất. Nói cách khác, tương đương với Linux của C: \ Program Files là gì?

  2. Và làm thế nào để người ta luôn cài đặt tại vị trí này, đó chỉ là vấn đề đặt tarball và chạy các lệnh cài đặt từ vị trí này?

  3. Nếu tôi sử dụng sudo apt-get để cài đặt một gói thì sao. Làm thế nào tôi có thể chỉ đến vị trí này để nói với apt-get luôn cài đặt ở đó?

Câu trả lời:


15

Có một cái gì đó tương tự áp dụng cho linux, nơi tất cả các chương trình được cài đặt ở một vị trí trung tâm

Tương đương gần đúng của các thư mục cài đặt Windows trong Linux

  • \Windows = = /bin
  • \Windows\System32= /lib/sbin
  • \Program Files= /usr/bin/usr/lib

Tôi muốn giữ tất cả các chương trình đã cài đặt của mình ở một nơi để đâu là nơi thích hợp cho việc này trong điều kiện thực hành tốt nhất. Nói cách khác, tương đương với Linux của C: \ Program Files là gì?

Đó sẽ là các thư mục theo /usr, cụ thể /usr/bin/usr/lib.

Và làm thế nào để người ta luôn cài đặt tại vị trí này, đó chỉ là vấn đề đặt tarball và chạy các lệnh cài đặt từ vị trí này?

  • Không. Bạn đang ở đâu khi bạn chạy các lệnh cài đặt hầu như không bao giờ quan trọng.

  • Các chương trình bạn cài đặt qua apt-get(hoặc aptitude) hầu như sẽ luôn luôn kết thúc một cách thích hợp /usr. NHƯNG chương trình bạn biên dịch từ mã nguồn và make installthường xuyên hơn sẽ kết thúc trong /usr/local/bin, /usr/local/lib, vv, và bạn có thể có vấn đề với điều đó kể từ khi con đường do người dùng cài đặt trong Debian / Ubuntu là /usrvà không /usr/local.

  • Khi biên dịch từ nguồn, thêm công tắc này để cấu hình : ./configure --prefix=/usr. Bằng cách này, khi bạn make installcác tập tin sẽ kết thúc trong thư mục bên phải

  • Cũng xem xét checkinstallchương trình, theo dõi các tệp mà gói được biên dịch từ các cài đặt nguồn, tạo tệp gỡ lỗi và cho phép dễ dàng gỡ cài đặt / cài đặt lại.

Nếu tôi sử dụng sudo apt-get để cài đặt một gói thì sao. Làm thế nào tôi có thể chỉ đến vị trí này để nói với apt-get luôn cài đặt ở đó?

apt-get/ dpkgchăm sóc điều này tự động. Bạn có thể sử dụng dpkg -L name-of-packageđể xem tất cả các tệp được cài đặt bởi một gói và nơi chúng được cài đặt.


cảm ơn câu trả lời chi tiết, chỉ một câu hỏi Vì bạn đã nói "Không. Bạn đang ở đâu khi bạn chạy các lệnh cài đặt gần như không bao giờ quan trọng.", Điều này có nghĩa là bây giờ tôi đã cài đặt chương trình Tôi có thể xóa thư mục Sphinx một cách an toàn trong / home / sphinx / mà tôi đã trích xuất từ ​​tarball và chạy lệnh cài đặt và thực hiện trong? Đây có phải là tương đương với một trình cài đặt mà tôi đã chạy để cài đặt một chương trình và bây giờ không sử dụng?
JakeRow123

1
Có, bạn có thể xóa thư mục được trích xuất từ ​​tarball - về cơ bản nó giống như thư mục "temp" mà trình cài đặt đã được trích xuất và hiện vô dụng. Đó là một câu hỏi tuyệt vời, tôi sẽ chỉnh sửa câu trả lời để bao gồm thông tin này.
ish

Bạn có thể, nhưng sau đó bạn sẽ gặp sự cố khi gỡ cài đặt chúng bằng 'thực hiện gỡ cài đặt'. Trong Debian / Ubuntu, bạn không bao giờ nên cài đặt phần mềm của mình ở tiền tố / hoặc / usr, bạn nên sử dụng / usr / local. Tại sao, bởi vì / usr / local được tạo cho quản trị viên cục bộ, đó là bạn JakeRow123, để cài đặt các chương trình của riêng họ. / và / usr chỉ dành cho các gói Debian. Nếu bạn cài đặt ở đó, các chans lớn sẽ khiến bạn gặp vấn đề. Vì vậy, sử dụng khóa '--prefix = / usr / local' để cấu hình lệnh khi bạn biên dịch bạn sở hữu. Sau đó làm; sudo make install 'sẽ cài đặt chương trình cho bạn ở đó.
Anders

@Anders, make uninstallKHÔNG phải là một tính năng tiêu chuẩn và không được tìm thấy trong nhiều nguồn chương trình. Ngoài ra, /usr/localthường không nằm trong đường dẫn trên Ubuntu và có thể gây ra sự cố khi cố gắng chạy chương trình hoặc cố gắng biên dịch (vì bao gồm trong /usr/local).
ish

Bạn KHÔNG nên cài đặt phần mềm ở sai vị trí, như dưới / usr và không ở đúng nơi như / usr / local. Bạn nên sửa lỗi với PATH nếu môi trường máy tính / người dùng không được thiết lập chính xác. Cài đặt dưới / hoặc / usr S get khiến bạn gặp rắc rối. Hãy tin tôi vào điều này. Ở đó và làm điều đó. Đó không phải là bất kỳ niềm vui. Ở tất cả. Một số chương trình, tất cả đều có autoconfig, nơi bạn thiết lập bằng lệnh configure đã gỡ cài đặt. Những người khác không có điều đó là không hữu ích, và nên có một lỗi được báo cáo ...
Anders

4

Thông thường chương trình được cài đặt trong một vài thư mục trong một thư mục trên cùng , được gọi là tiền tố . Việc sử dụng thư mục hàng đầu nào phụ thuộc vào người đang cài đặt, cho mục đích phù thủy và ai sẽ quản lý phần mềm.

Tiền tố /usrđược sử dụng phần mềm được đóng gói bởi phân phối của bạn. Bạn không nên cài đặt bất kỳ phần mềm nào khác ở đó, vì nó sẽ gây nhầm lẫn cho bản phân phối khi cài đặt và nâng cấp phần mềm được đóng gói bởi bản phân phối. Vì vậy, xin vui lòng không cài đặt phần mềm biên dịch của riêng bạn ở đó. Đó không phải là một ý tưởng tốt, trừ khi bạn thực sự biết những gì bạn làm. Và trừ khi bạn là nhà phát triển Debian hoặc Ubunut, bạn thường không. Tôi sẽ không làm điều đó.

Đối với phần mềm thương mại, tiền tố /optđược sử dụng. Nó dành riêng cho họ để can thiệp ít nhất vào các bản phân phối và quản trị viên hệ thống cục bộ.

Đối với phần mềm, quản trị viên hệ thống cài đặt cho tất cả người dùng, tiền tố /usr/localđược sử dụng. Có cách nào đó từ cả cài đặt thương mại hoặc phân phối và sẽ không can thiệp vào chúng. Vì vậy, là một quản trị viên hệ thống, bạn sử dụng điều đó (nếu bạn có quyền root, bạn là quản trị viên hệ thống).

Nếu bạn là người dùng thông thường cài đặt phần mềm cho chính mình, bạn có thể sử dụng thư mục chính của mình làm tiền tố, bằng cách sử dụng --prefixtùy chọn configurevới thư mục tiền tố " ~/" hoặc $HOME/. Tôi đã sử dụng nó rất nhiều khi tôi còn là sinh viên. :-)

Thông thường phần mềm làm đúng khi bạn thực hiện configurevới tùy chọn --prefixvới giá trị phù hợp và sau đó make; make install.

Trong bất kỳ tiền tố nào, bạn thường tìm thấy các thư mục này trong một bản cài đặt tiêu chuẩn.

  • bin - các chương trình thực thi, nhị phân.
  • sbin - hệ thống nhị phân, thường không được thực thi bởi người dùng thông thường.
  • man - các trang hướng dẫn cho các chương trình, thư viện và tập tin cấu hình, v.v.
  • etc - tập tin cấu hình với các giá trị mặc định cho phần mềm.
  • lib - thư viện chương trình và tệp dữ liệu phụ thuộc vào kiến ​​trúc (như CPU) trong máy tính của bạn.
  • share - các tệp dữ liệu không khác nhau trên các kiến ​​trúc khác nhau và có thể được chia sẻ giữa các máy tính khác nhau.
  • var- thư mục có dữ liệu thay đổi trong quá trình thực hiện chương trình. Giống như đăng nhập tập tin, vv

Hầu hết các thư mục có thể được sử dụng với các hệ thống tệp được bảo vệ ghi để tăng tính bảo mật. Người duy nhất mà người dùng cần ghi vào là var/thư mục. Khi phần mềm được cập nhật, các thư mục này rõ ràng (?) Cần phải có đặc quyền viết. Điều đó có thể được thực hiện với một bản ghi lại với các đặc quyền ghi trong khi cài đặt và sau đó chỉ được đọc lại sau khi cài đặt. Nhưng điều này là nâng cao và tôi chỉ đưa ra nó như một ví dụ về quản lý gói nâng cao.

Ngoài ra còn có một số thư mục trực thuộc /(thư mục gốc) mà không tồn tại dưới bất kỳ tiền tố khác, như /dev, /tmp, /proc/srv(cho máy chủ thư mục dữ liệu, nhưng chúng thường dưới /var/libhoặc /var/wwwvà thư mục như thế, vì vậy bạn cần phải cấu hình thay đổi sử dụng thư mục này. Tôi khuyên bạn nên làm điều đó khi bạn đang chạy một máy chủ. Chỉ sử dụng /var/để kiểm tra cài đặt tiêu chuẩn).

  1. Linux không phải là MS Windows. Có nhiều nơi để đặt chương trình bạn cài đặt. Nó phụ thuộc vào ai cài đặt và cho ai. Đọc nó trong bài viết của tôi. Để ý. RedHat sử dụng /usrnhư Debian / Ubuntu sử dụng /usr/local. Tìm hiểu phân phối của bạn.
  2. Các chương trình khác nhau có phương pháp cài đặt khác nhau. --prefixlà hữu ích cho các chương trình sử dụng configure. Cách tốt nhất để biết có lẽ là đọc README.txttệp hoặc một cái gì đó tương tự, mà bạn có thể được cung cấp trong kho lưu trữ tar. Các kho lưu trữ tar có thể được trích xuất ở bất cứ nơi nào, như thư mục nhà của bạn. Sau khi hoàn tất bước cài đặt, bạn có thể xóa kho lưu trữ tar đã giải nén, nếu bạn thiếu dung lượng. Nhưng đừng làm điều đó sớm, trừ khi bạn đã kiểm tra cài đặt đúng cách.
  3. Các chương trình được cài đặt có apt-gethoặc aptitudeluôn được cài đặt ở vị trí thích hợp để phân phối. Bạn không thể thay đổi nơi đó.

2

Khi bạn cài đặt các chương trình từ kho lưu trữ bằng cách sử dụng cài đặt thông thường, nó sẽ cài đặt đúng nơi, tạo các tệp cấu hình ở đúng nơi (có chức năng tương tự như sổ đăng ký Windows) và tự động tạo các mục menu.

Khi bạn tải xuống một tệp (không được ưu tiên, nhưng thường là cần thiết khi ứng dụng không có trong kho lưu trữ), thì điều đầu tiên bạn làm là chạy tar, tương đương với giải nén trên Windows. Điều này tạo ra các tập tin bạn có thể nhìn thấy.

Sau đó, khi bạn chạy make install, điều đó thường sẽ đặt kết quả vào đúng vị trí, có thể tạo menu, nhưng nó sẽ không xóa các tệp chưa được quét. Bạn rất có thể làm điều đó, nhưng bạn có thể muốn lưu chúng tạm thời chỉ trong trường hợp.

Đây là một bài viết thú vị về cấu trúc thư mục Debian .


Bài viết hay, ngoại trừ việc nó không có bất kỳ tham chiếu nào đến / usr / local nơi bạn cài đặt phần mềm của riêng mình để không xung đột với phần mềm được cài đặt bởi hệ thống và các gói phân phối (như Ubuntu). Để cài đặt phần mềm của bạn theo / hoặc / usr là yêu cầu các vấn đề, vấn đề mà có lẽ chỉ cần giải quyết là cài đặt lại hệ thống từ đầu ...
Anders
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.