banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Build từ source nhưng muốn remove bằng yum, rpm ?  XML
  [Question]   Build từ source nhưng muốn remove bằng yum, rpm ? 23/02/2008 02:22:40 (+0700) | #1 | 116134
[Avatar]
AIO
Member

[Minus]    0    [Plus]
Joined: 21/02/2008 23:44:02
Messages: 127
Offline
[Profile] [PM]
Chào các bác, em lại có vấn đề khi em dùng yum/rpm để remove một package build từ source thì bị báo lỗi kiểu như package chưa được cài. Vậy giờ em phải làm sao để remove gói đó hả các bác ?
chẳng ai nghĩ gì về mình cả
[Up] [Print Copy]
  [Question]   Re: Build từ source nhưng muốn remove bằng yum, rpm ? 23/02/2008 05:01:03 (+0700) | #2 | 116166
[Avatar]
enn3exlibs
Elite Member

[Minus]    0    [Plus]
Joined: 10/12/2006 16:54:02
Messages: 243
Location: bluesun
Offline
[Profile] [PM]
Search google:

Uninstalling

So, you decided you didn't like the program after all? Uninstalling the programs you've compiled yourself isn't as easy as uninstalling programs you've installed with a package manager, like rpm.

If you want to uninstall the software you've compiled yourself, do the obvious: do some old-fashioned RTFM'ig. Read the documentation that came with your software package and see if it says anything about uninstalling. If it doesn't, you can start pulling your hair out.

If you didn't delete your Makefile, you may be able to remove the program by doing a make uninstall:

root@puter: /home/me/dls/pkg# make uninstall

If you see weird text scrolling on your screen (but at this point you've probably got used to weird text filling the screen? that's a good sign. If make starts complaining at you, that's a bad sign. Then you'll have to remove the program files manually.

If you know where the program was installed, you'll have to manually delete the installed files or the directory where your program is. If you have no idea where all the files are, you'll have to read the Makefile and see where all the files got installed, and then delete them.

[Up] [Print Copy]
  [Question]   Re: Build từ source nhưng muốn remove bằng yum, rpm ? 23/02/2008 06:44:09 (+0700) | #3 | 116188
slack
Member

[Minus]    0    [Plus]
Joined: 03/02/2008 21:46:19
Messages: 15
Offline
[Profile] [PM]
Những program cài từ source thường phải remove bằng lệnh make uninstall tại folder source code mà bạn đã configure và make install. Cái này xem trong file make, nhưng cũng có thể có chương trình không có lựa chọn make uninstall cho bạn.

Cách tốt nhất là bạn học cách xây dựng package từ source, sau đó cài đặt bằng package do bạn tạo ra
[Up] [Print Copy]
  [Question]   Build từ source nhưng muốn remove bằng yum, rpm ? 23/02/2008 07:38:45 (+0700) | #4 | 116203
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

AIO wrote:
Chào các bác, em lại có vấn đề khi em dùng yum/rpm để remove một package build từ source thì bị báo lỗi kiểu như package chưa được cài. Vậy giờ em phải làm sao để remove gói đó hả các bác ? 

+ Đầu tiên kiếm một cuốn sách cơ bản về Linux để đọc (tìm lại trên diễn đàn)
+ Thứ hai, khi build một gói từ source, ngay sau khi giải nén nên tìm và đọc 2 file: INSTALL và README. Bạn có thể tìm được cách cài đặt hoặc gỡ bỏ rất chi tiết trong file INSTALL và những thông tin liên quan trong file README.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Re: Build từ source nhưng muốn remove bằng yum, rpm ? 23/02/2008 14:02:29 (+0700) | #5 | 116252
[Avatar]
AIO
Member

[Minus]    0    [Plus]
Joined: 21/02/2008 23:44:02
Messages: 127
Offline
[Profile] [PM]
Các bác không hiểu ý em roài. Em xin phép được trích của bác temporary.

temporary wrote:
Lại phải sorry, ý mình là khi một package được cài thì cái "thông tin nó đã được cài" sẽ được lưu ở đâu và khi mình xóa theo kiểu như trên thì cái thông tin đó có tự mất theo luôn không ?  

Chẳng là trước đây em cũng chẳng biết là bao lâu rồi, em có được đọc ở đâu đấy về cái thông tin kiểu như trên. Tức là khi cài một gói rpm thì các thông tin về gói cài sẽ được lưu vào đâu đó và bây giờ khi em cài một gói source mà nếu em thêm các thông tin về gói source này một cách đầy đủ và đúng vào vị trí cần thiết thì em hoàn toàn có thể dùng yum hoặc rpm để remove được cái gói mà em build từ source đó.

Chứ bảo em đọc kỹ INSTALL và README thì tất nhiên là em đã đọc rồi và không phải tất cả các gói source đều có INSTALL và README đâu mà em nghĩ là nên đọc cái Makefile các bác ạ. Có lẽ em sẽ tìm hiểu về cấu trúc gói rpm.

Em xin hết ạ.
chẳng ai nghĩ gì về mình cả
[Up] [Print Copy]
  [Question]   Re: Build từ source nhưng muốn remove bằng yum, rpm ? 23/02/2008 14:40:25 (+0700) | #6 | 116258
[Avatar]
AIO
Member

[Minus]    0    [Plus]
Joined: 21/02/2008 23:44:02
Messages: 127
Offline
[Profile] [PM]
Em xin trích một đoạn :
Quá trình tạo file RPM chỉ là việc lựa chọn từ hệ thống file đã được biên dịch của các gói mã nguồn để đưa vào gói RPM. Khi đưa gói RPM tới nơi khác cài đặt, gói RPM sẽ tự động thực hiện việc giải bung các file tới các vị trí thích hợp như chính các file đó được bố trí trên máy đã cài bằng gói mã nguồn. Như phần dưới đây sẽ trình bày, bước xây dựng file .spec là quan trọng nhất trong đóng gói RPM vì chính file này hướng dẫn quá trình tạo lập ra file RPM. Nó nói cho trình tạo RPM biết phải copy các file nào, thiết lập các thông số cho gói RPM ra sao. Trong chính file này, người dùng cũng có thể can thiệp vào các file và các thư mục sẽ được cài đặt, thiết lập các thông số cho gói mã nguồn sẽ được được biên dịch và do đó ảnh hưởng tới file RPM.
Cả quá trình này phức tạp nhất và cũng quan trọng nhất là tạo được file spec hoạt động đúng và phù hợp với hệ thống, để xây dựng được gói rpm hoàn chỉnh.

File spec là một file hướng dẫn cách xây dựng phần mềm và danh sách các file được cài đặt.

Sau khi đã hoàn chỉnh file spec, đảm bảo file spec được đưa vào /usr/src/redhat/SPECS và file mã nguồn và các bản vá tương ứng được đặt tại /usr/src/redhat/SOURCES. 

Cách làm công việc của file spec trên bằng tay ! Thôi có lẽ để em tự tìm hiểu vậy.
chẳng ai nghĩ gì về mình cả
[Up] [Print Copy]
  [Question]   Re: Build từ source nhưng muốn remove bằng yum, rpm ? 23/02/2008 15:07:19 (+0700) | #7 | 116260
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

AIO wrote:

...
Chẳng là trước đây em cũng chẳng biết là bao lâu rồi, em có được đọc ở đâu đấy về cái thông tin kiểu như trên. Tức là khi cài một gói rpm thì các thông tin về gói cài sẽ được lưu vào đâu đó và bây giờ khi em cài một gói source mà nếu em thêm các thông tin về gói source này một cách đầy đủ và đúng vào vị trí cần thiết thì em hoàn toàn có thể dùng yum hoặc rpm để remove được cái gói mà em build từ source đó.
...
Em xin hết ạ. 

Tớ nghĩ rằng: KHÔNG THỂ THỰC HIỆN ĐƯỢC ĐIỀU ĐÓ.

Chỉ có 2 loại RPMs: binary và source. Binary RPMS (*.rpm) được biên dịch cho một kiến trúc nhất định: i386, i586, i686, noarch, ... còn source RPMs (tận cùng là .src.rpm) chứa đựng mã nguồn để build nên gói binary.

Khi dùng rpm để remove một gói nào đó, theo tớ có 2 điểm cần lưu ý:
+ Gói đó chắc chắn phải là một binary package (được cài từ rpm hoặc yum)
+ Cú pháp rpm -e <package_name>. Ở đây ta phải dùng <tên_gói> để xoá.

ps: cái thông tin bạn "đọc được ở đâu đó" viết bằng tiếng Anh hay tiếng Việt. Bạn nhớ lại và tìm được nguồn trích dẫn thì tốt.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Re: Build từ source nhưng muốn remove bằng yum, rpm ? 23/02/2008 23:20:01 (+0700) | #8 | 116286
[Avatar]
enn3exlibs
Elite Member

[Minus]    0    [Plus]
Joined: 10/12/2006 16:54:02
Messages: 243
Location: bluesun
Offline
[Profile] [PM]

AIO wrote:
Chẳng là trước đây em cũng chẳng biết là bao lâu rồi, em có được đọc ở đâu đấy về cái thông tin kiểu như trên. Tức là khi cài một gói rpm thì các thông tin về gói cài sẽ được lưu vào đâu đó và bây giờ khi em cài một gói source mà nếu em thêm các thông tin về gói source này một cách đầy đủ và đúng vào vị trí cần thiết thì em hoàn toàn có thể dùng yum hoặc rpm để remove được cái gói mà em build từ source đó. 

về lý thuyết thì nói chơi cho vui, còn thực tế thì không được
bồ tìm hiểu xem điều gì xảy ra khi dùgn : rpm -i và rpm -e


[Up] [Print Copy]
  [Question]   Re: Build từ source nhưng muốn remove bằng yum, rpm ? 23/02/2008 23:41:16 (+0700) | #9 | 116287
[Avatar]
AIO
Member

[Minus]    0    [Plus]
Joined: 21/02/2008 23:44:02
Messages: 127
Offline
[Profile] [PM]
Em là em hoàn toàn không đồng ý với bác quanta ở câu :

quanta wrote:
Tớ nghĩ rằng: KHÔNG THỂ THỰC HIỆN ĐƯỢC ĐIỀU ĐÓ. 

Chúng ta đang sống và làm việc trên một Open Source Code

Dưới đây là một bài em mới tìm được :
http://www.echip.com.vn/echiproot/weblh/sdpm/2000/ht/linux/rpm.htm
Em sẽ trích một vài đoạn mà em cho là có thể phục vụ cho mục đích của topic.
RPM là tên viết tắt của RedHat Package Manager, là một chương trình cho phép người dùng quản lý các phần mềm được cài đặt trên Linux một cách mềm dẻo và hữu dụng. 

Chính vì vậy :
RPM có một cơ sở dữ liệu rất lớn lưu trữ tất cả các công việc mà nó thực hiện với các gói cùng các thông tin về các gói. Nó sẽ sử dụng cơ sở dữ liệu này để tra cứu thông tin về sau hoặc kiểm tra xung đột. 

Quá trình cài đặt của một rpm :
- Kiểm tra tính phụ thuộc của gói.
Kiểm tra tình trạng xung đột giữa các file.
- Thực hiện các script trước lúc cài đặt.
- Sửa lại các file cấu hì nh đang có trong hệ thống.
- Bung nén các file từ gói cài đặt vào các vị trí thí ch hợp.
- Thực hiện các script sau cài đặt.
- Lưu lại tất cả các thông tin trên vào cơ sở dữ liệu. 

Quá trình remove của một rpm :
- Kiểm tra xem có một gói nào trong hệ thống phụ thuộc vào gói sẽ bị xóa không.
- Thực hiện script pre-uninstall nếu có.
- Kiểm tra các file cấu hì nh có bị thay đổi không, nếu có sẽ lưu lại một bản copy.
- Tra cứu cơ sở dữ liệu rpm để xóa các file của gói đó.
- Thực hiện các script post-uninstall nếu có.
- Xóa các thông tin liên quan đến các gói trong cơ sở dữ liệu. 

Còn về "CSDL RPM", em nghĩ nó liên quan đến :
* /usr/src/redhat/SOURCE Chứa các file source code (file nén), các file patch, các file icon. Nếu ta cài đặt một gói source code, nó sẽ ném các file mã nguồn vào đây.

* /usr/src/redhat/SPECS Chứa các file .spec điều khiển quá trình xây dựng gói. Khi cài một gói source code, file .spec của gói binary cũng được copy vào đây.

* /usr/src/redhat/BUILD Thư mục diễn ra qua trình xây dựng gói

* /usr/src/redhat/RPMS Thư mục mà các gói binary được tạo ra sau quá trình xây dựng. Thật ra còn có các thư mục cấp nhỏ hơn là i386, i686, noarch chứa gói ứng với từng hệ thống cụ thể.

* /usr/src/redhat/SRPMS Thư mục mà các gói source code được tạo ra đặt ở đây. 

File .spec trái tim của quá trì nh đóng gói rpm

Ðể đóng gói được một phần mềm, rpm cần đến một file mô tả tất cả các quá trình nó cần tiến hành, tất cả các thông tin liên quan đến phần mềm đó, file .spec là một file text thông thường (bạn có thể nghĩ file .spec như là cái gì đó gần giống với Makefile). 

Và để thực hiện được mục đích của topic còn cần phải quan tâm đến :
+ Makefile, config ... trong Source Code.
+ Berkeley DB : http://www.oracle.com/technology/documentation/berkeley-db/db/ref/toc.html

Bởi vì lúc này em chưa đủ khả năng để làm được (nên em mới lập ra topic để hỏi) nhưng em nghĩ với những vấn đề nêu ở trên chúng ta hoàn toàn có thể dùng RPM/YUM để remove một gói build từ source.

Cuối cùng em xin dừng topic ở đây.
chẳng ai nghĩ gì về mình cả
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|