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 [Fun]Xóa nhiều package nhất có thể  XML
  [Question]   [Fun]Xóa nhiều package nhất có thể 11/04/2008 15:21:13 (+0700) | #1 | 124595
[Avatar]
K4i
Moderator

Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
[Profile] [PM]
Hi anh em, hôm nay thầy mình vừa có câu hỏi. Thấy hay hay, với lại mình chưa tìm ra được solutions một cách hoàn thiện nên đưa lên đây anh em cùng bàn luận

Cho một hệ thống RHEL (CentOS hoặc bất kì chú nào họ RedHat) có sẵn, hãy xóa nhiều package nhất có thể sao cho:
- Hệ thống vẫn chạy được
- Lệnh rpm vẫn chạy được.
- Khi kiểm tra depedencies giữa các gói bằng rpm thì không có lỗi.
 


Chấm điểm:
- dưới 500MB là xuất sắc
- dưới 600MB là tốt
- dưới 700MB là bình thường
- dưới 800MB thì trung bình
- trên 800MB là trượt.

Gợi ý: dùng rpm -e
Mình đã chạy thử, dung lượng hệ thống từ 2GB xuống còn 640MB. Vấn đề là mình muốn giảm nữa nhưng script mình sinh ra không thể làm được nữa. Mình vẫn muốn giảm dung lượng xuống nữa nhưng ko rõ các gói rpm nào là cần thiết nhất cho hệ thống mà giữ lại, với lại không dám xóa bừa nữa.

Mời anh em vào thảo luận:
- Dung lượng tối thiểu mà mình có thể giữ lại là bao nhiêu
- Các gói rpm tối thiểu cho một hệ thống hoạt động là gói nào? (Mình định đi theo hướng này)
- Có cách nào khác để thỏa mãn các yêu cầu trên không?

Note: Vì đây là một câu đố sẽ làm nguy hại đến hệ thống, nên tốt nhất mọi người muốn test script thì nên test trên máy ảo Linux. Và chú ý: đọc kĩ hướng dẫn trước khi sử dụng.

Script của mình đã viết sẽ đưa lên sau.

:d


Sống là để không chết chứ không phải để trở thành anh hùng
[Up] [Print Copy]
  [Question]   Re: [Fun]Xóa nhiều package nhất có thể 11/04/2008 15:51:35 (+0700) | #2 | 124601
mR.Bi
Member

[Minus]    0    [Plus]
Joined: 22/03/2006 13:17:49
Messages: 812
Offline
[Profile] [PM] [WWW]
Bác cho em em bác đã xóa những gói rpm nào? Em hỏi để chắc chắn rằng sau khi xóa xong chừng đấy gói con redhat em mới cài vẫn còn chạy tốt, vả lại cũng cảm thấy redhat kèm theo quá nhiều gói ko cần thiết, nhân đây xóa luôn.

Viết sript sai tí là toi smilie
All of my life I have lived by a code and the code is simple: "honour your parent, love your woman and defend your children"
[Up] [Print Copy]
  [Question]   Re: [Fun]Xóa nhiều package nhất có thể 11/04/2008 20:57:50 (+0700) | #3 | 124609
Mr.Khoai
Moderator

Joined: 27/06/2006 01:55:07
Messages: 954
Offline
[Profile] [PM]
Hello K4i,

Câu "Hệ thống vẫn chạy được" là có ý gì? Yêu cầu cụ thể của hệ thống này là cái gì? Nó có cung cấp service gì không? vân vân.

khoai không có dùng RedHat/Fedora/CentOS nên không dám phán bừa xem gói rpm nào là cần thiết, gói nào là không cần. Tuy nhiên, cần hay không đa phần là tương đối so với yêu cầu của máy tính. Ví dụ: Gói OpenSSH có cần không? Không có nó thì máy vẫn chạy, nhưng rất nhiều người coi OpenSSH là "base system".

khoai

PS: Bạn viết xong cái script nếu được thì publish cho khoai xem với.
[Up] [Print Copy]
  [Question]   Re: [Fun]Xóa nhiều package nhất có thể 11/04/2008 22:03:07 (+0700) | #4 | 124627
Telnet_Ftp
Member

[Minus]    0    [Plus]
Joined: 08/04/2008 14:47:57
Messages: 44
Offline
[Profile] [PM]
Các gói rpm tối thiểu cho một hệ thống hoạt động là gói nào  

. Có thể liệt kê các danh sách đó ra không vậy K4i
[Up] [Print Copy]
  [Question]   Re: [Fun]Xóa nhiều package nhất có thể 12/04/2008 07:40:57 (+0700) | #5 | 124723
[Avatar]
K4i
Moderator

Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
[Profile] [PM]

Mr.Khoai wrote:
Hello K4i,

Câu "Hệ thống vẫn chạy được" là có ý gì? Yêu cầu cụ thể của hệ thống này là cái gì? Nó có cung cấp service gì không? vân vân.

khoai không có dùng RedHat/Fedora/CentOS nên không dám phán bừa xem gói rpm nào là cần thiết, gói nào là không cần. Tuy nhiên, cần hay không đa phần là tương đối so với yêu cầu của máy tính. Ví dụ: Gói OpenSSH có cần không? Không có nó thì máy vẫn chạy, nhưng rất nhiều người coi OpenSSH là "base system".

khoai

PS: Bạn viết xong cái script nếu được thì publish cho khoai xem với. 


Hi Khoai, "hệ thống vẫn chạy được" tức là khi khởi động máy vẫn lên được bình thường. Vẫn có shell cho mình dùng. Đơn giản chỉ có vậy. Không cần quan tâm đến các service nào đang chạy. Còn về script thì để mình sẽ đưa lên, nhưng để anh em nào có hứng thú thì suy nghĩ một tí đã. Xem có ý tưởng hay ho nào khác không.


bác cho em em bác đã xóa những gói rpm nào 

uhm, khi xóa bằng script thì cứ xóa được là xóa chứ mình ko để ý là đã xóa được những gói nào.

@Telnet_Ftp: căn bản mình cũng chưa có thời gian tìm hiểu nên không thể đưa ra câu trả lời. Hy vọng các bác có kinh nghiệm cho ý kiến smilie

:d
Sống là để không chết chứ không phải để trở thành anh hùng
[Up] [Print Copy]
  [Question]   Re: [Fun]Xóa nhiều package nhất có thể 12/04/2008 08:24:13 (+0700) | #6 | 124727
FaL
Moderator

Joined: 14/04/2006 09:31:18
Messages: 1232
Offline
[Profile] [PM]
Hello all,

FaL không dùng RedHat nên không rõ, nhưng nếu custom install chọn những gói cơ bản nhất có được không? Nếu được thì "tốn" bao nhiêu? Tin rằng trong những gói căn bản sẽ có shell. FaL cũng thường install base trên FreeBSD, chỉ khoảng 200Mb. smilie
Hãy giữ một trái tim nóng và một cái đầu lạnh
[Up] [Print Copy]
  [Question]   Re: [Fun]Xóa nhiều package nhất có thể 12/04/2008 11:00:17 (+0700) | #7 | 124745
safari
Member

[Minus]    0    [Plus]
Joined: 31/01/2008 01:19:23
Messages: 33
Location: somewhere
Offline
[Profile] [PM]
+ "yum grouplist" để liệt kê danh sách tất cả các group.
+ "yum groupremove ..." sẽ xóa được một mớ khá lớn smilie
[Up] [Print Copy]
  [Question]   Re: [Fun]Xóa nhiều package nhất có thể 12/04/2008 22:34:03 (+0700) | #8 | 124788
Telnet_Ftp
Member

[Minus]    0    [Plus]
Joined: 08/04/2008 14:47:57
Messages: 44
Offline
[Profile] [PM]
+ "yum grouplist" để liệt kê danh sách tất cả các group.
+ "yum groupremove ..." sẽ xóa được một mớ khá lớn  

Đây là gì vậy bạn, có thể giãi thix thêm không, mới tập tành học linux...
[Up] [Print Copy]
  [Question]   Re: [Fun]Xóa nhiều package nhất có thể 12/04/2008 23:31:09 (+0700) | #9 | 124795
safari
Member

[Minus]    0    [Plus]
Joined: 31/01/2008 01:19:23
Messages: 33
Location: somewhere
Offline
[Profile] [PM]
Xem ở http://docs.fedoraproject.org/yum/en/sn-managing-packages.html.

Nên tập thói quen Googling đi, hơi tý là hỏi không tốt đâu. smilie
[Up] [Print Copy]
  [Question]   Re: [Fun]Xóa nhiều package nhất có thể 31/07/2008 10:34:02 (+0700) | #10 | 144386
[Avatar]
quanta
Moderator

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

K4i wrote:

...
Còn về script thì để mình sẽ đưa lên, nhưng để anh em nào có hứng thú thì suy nghĩ một tí đã. Xem có ý tưởng hay ho nào khác không.
 

Như đã hứa, em có thể chia sẻ đoạn shell script của mình không?

Hôm nay anh lại gặp 1 bài toán hơi rộng hơn một chút:
+ Hệ thống chạy Ubuntu 8.04 trên VirtualBox
+ Hệ thống cần có: Python, OpenLDAP, python-ldap, Zope, Plone.

Anh cũng cần xóa tất cả các packages không cần thiết để giữ lại một file .vdi với dung lượng nhỏ nhất có thể. Hình như trên Debian/Ubuntu không có tùy chọn grouplist, groupremove, ... (hoặc là anh chưa tìm ra). Mặc dù nó có package deborphan để xóa những gói thừa nhưng ngoài ra anh chưa nghĩ ra cách nào khả thi cả.

Không biết anh em nào có thể "quân sư" giúp tôi vài chiêu.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Re: [Fun]Xóa nhiều package nhất có thể 31/07/2008 13:09:36 (+0700) | #11 | 144412
[Avatar]
K4i
Moderator

Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
[Profile] [PM]
@quanta: nếu là script chuẩn của thầy giáo em thì em ko có vì các máy ảo trên trường đều đã bị xóa và script đó đã tiêu tùng theo cát bụi smilie

Nhưng tư tưởng cái cách của em là thế này: (rất xin lỗi mọi người là script hiện tại mà em có thể có là script của em tự viết, hơi khác với cách của thầy em).

- dùng Code:
rpm -qa
để liệt kê toàn bộ các packages đã được cài đặt trong hệ thống.
- sau đó chiến thuật như sau: ta chạy Code:
rpm -e
tất cả các gói phần mềm được cài trong hệ thống (đã được liệt kê ở trên). Trừ gói có tên là rpm ra.
- Trong trường hợp các gói có dependencies với nhau thì cách rất đơn giản là ta chạy khoảng vài lần cái script này. Tại sao như thế: rất đơn giản, ta tưởng tượng là các gói rpm có liên quan đến nhau theo dạng mắt xích, gói này phụ thuộc vào gói kia hoặc chả phụ thuộc vào gói nào cả. Chạy script lần đầu ta có thể chặt được tất cả các gói độc lập hoặc các gói nằm cuối cùng trong dãy mắt xích đó.
- Chạy script lần thứ 2 ta diệt được các script ở cuối của các dãy mắt xích còn lại.
- Chạy n lần như thế đến khi nào ta cảm thấy là chạy script đó ko có lợi ích gì hơn (nguyên nhân là lúc này hệ thống còn tồn tại các các gói có dependencies như sau: A -> B -> C -> A - các gói có phụ thuộc vòng và ta không thể cắt được).

Tư tưởng chỉ đơn giản như thế thôi ạ.
Sống là để không chết chứ không phải để trở thành anh hùng
[Up] [Print Copy]
  [Question]   Re: [Fun]Xóa nhiều package nhất có thể 31/07/2008 13:18:51 (+0700) | #12 | 144415
[Avatar]
K4i
Moderator

Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
[Profile] [PM]

quanta wrote:

K4i wrote:

...
Còn về script thì để mình sẽ đưa lên, nhưng để anh em nào có hứng thú thì suy nghĩ một tí đã. Xem có ý tưởng hay ho nào khác không.
 

Như đã hứa, em có thể chia sẻ đoạn shell script của mình không?

Hôm nay anh lại gặp 1 bài toán hơi rộng hơn một chút:
+ Hệ thống chạy Ubuntu 8.04 trên VirtualBox
+ Hệ thống cần có: Python, OpenLDAP, python-ldap, Zope, Plone.

Anh cũng cần xóa tất cả các packages không cần thiết để giữ lại một file .vdi với dung lượng nhỏ nhất có thể. Hình như trên Debian/Ubuntu không có tùy chọn grouplist, groupremove, ... (hoặc là anh chưa tìm ra). Mặc dù nó có package deborphan để xóa những gói thừa nhưng ngoài ra anh chưa nghĩ ra cách nào khả thi cả.

Không biết anh em nào có thể "quân sư" giúp tôi vài chiêu.  


Hi anh quanta, tư tưởng các gói được cài đặt trên hệ thống Ubuntu/Debian khá khác biệt so với Fedora/Debian vì các gói ko được gom theo nhóm (như Fedora) mà là các gói riêng rẽ với nhau (anh thử chạy Code:
aptitude
thì rõ). Chính vì thế sẽ không có chuyện dùng grouplist hay groupremove đâu anh.

Còn về xóa các gói thừa thì em không hiểu là các file .vdi thì liên quan gì đến ở đây vì các hệ thống Debian được dựng lên từ các gói .deb mà. Vì thế có xóa cũng ko thể xóa được các .vdi. (trừ phi anh cài Virtual Box từ gói .deb và anh remove cả VirtualBox đi và hành động đó khiến .vdi tan theo mây gió). Thêm vào đó, như bài em đã nói ở trên thì khi remove hệ thống theo các gói (cũng giống như ta bóc tách từng lớp một của hệ thống - ở đây, em giả dụ trên RedHat là hệ thống Linux Kernel được phủ lên bởi các gói rpm giống như vẩy cá vậy). Việc bóc tách như thế khiến cho hệ thống đảm bảo là vẫn chạy được và các dependencies giữa các gói là được đảm bảo.

Em chưa thử "cái trò này" trên Ubuntu (sử dụng dpkg hoặc apt-get remove) nên không rõ tham số lắm nhưng em tin là trên Debian cũng có thể áp dụng được như cách em vừa nó (anh thử man dpkg hoặc apt-get xem).
:d
Sống là để không chết chứ không phải để trở thành anh hùng
[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|