더 많은 여유 공간을 확보하기 위해 Amazon Linux 운영 체제를 축소하는 방법은 무엇입니까?

더 많은 여유 공간을 확보하기 위해 Amazon Linux 운영 체제를 축소하는 방법은 무엇입니까?

나는 사용한다EC2아마존 웹 서비스에서. t2.micro 인스턴스의 운영 체제는 사용자 정의됩니다."아마존리눅스”에는 1GiB RAM과 1개의 vCPU가 있습니다.Cloud9 IDE기본적으로 사용 가능한 파일 공간의 73%(/dev/xvda1에서 7.8G)가 사용되고 나머지 2.2G만 사용할 수 있다는 것을 알았습니다.

내 요청:

  • Python 스크립트를 실행하고 출력 데이터를 로컬로 작성해야 합니다.
  • 저는 명령줄에서 작업하기 때문에 GUI 없이도 할 수 있습니다.

여유 공간을 확보하기 위해 운영 체제의 어떤 구성 요소를 안전하게 제거할 수 있습니까?

답변1

1. 불필요한 패키지 삭제

Amazon Linux 인스턴스는 yum 패키지 관리자를 사용하여 소프트웨어를 관리합니다. yum 패키지 관리자는 소프트웨어를 설치, 제거, 업데이트할 수 있을 뿐만 아니라 각 패키지의 모든 종속성을 관리할 수도 있습니다. –Linux 인스턴스에서 소프트웨어 관리

다음 명령을 실행하여 시스템에서 가장 큰 20개의 패키지 목록을 생성했습니다.

rpm -qa --queryformat '%10{size} - %-25{name} \t %{version}\n' | sort -nr | head -n 20

모든 종속성이 있는 패키지를 제거하기 위해 yum 플러그인을 설치 remove-with-leaves한 다음 필요하지 않다고 생각되는 가장 큰 패키지(종속성 포함)를 반복적으로 제거했습니다(아래 목록).

sudo yum remove package_name --remove-leaves

2. 오래된 커널 제거

  1. 현재 커널을 식별합니다.uname -mrs
  2. 모든 코어를 나열합니다.rpm -q kernel
  3. 오래된 Linux 커널을 수동으로 제거합니다.sudo yum remove kernel-4.9.76-3.78.amzn1.x86_64

3. 사용하지 않는 패키지 삭제

식별된 패키지는 다른 항목에 영향을 주지 않고 제거할 수 있으며(Debian에서는 이러한 패키지를 "고아 패키지"라고 함) 자동으로 제거할 수 있습니다.

sudo package-cleanup --quiet --leaves | sudo xargs -l1 yum -y remove 

발견하다

Python 3.6.5만 적극적으로 사용하고 있지만 기본값 python(Python 2.7.14)을 제거할 수는 없습니다.

많은 Linux 배포판에는 Python이 필요합니다. 배포 공급자가 배포하는 많은 시스템 유틸리티(GUI 기반 또는 비 GUI 기반)는 Python으로 프로그래밍됩니다. 시스템 유틸리티에서 사용하는 Python 버전을 "기본" Python이라고 부르겠습니다. [...] 시스템 유틸리티는 Python으로 작성되었으므로 시스템을 파괴하지 않고 기본 Python을 제거하는 것은 불가능합니다. –Python을 우아하게 삭제하는 방법은 무엇입니까?

패키지가 차지하는 총 공간 은 python27115819035바이트(~116MB)입니다.

결과

  • 전체적으로 약 0.5GB(디스크 공간의 7%)가 복구되었습니다 /dev/xvda1.
  • 214개의 패키지가 삭제되었으며 총 633427867바이트입니다.
    java-1.7.0-openjdk emacs-common mysql55-server java-1.7.0-openjdk-devel git 
    mysql55 vim-common perl compat-libicu4 aws-apitools-ec2 emacs v8 ruby20-libs 
    perl-Encode nodejs-devel aws-apitools-elb aws-apitools-as nodejs 
    aws-apitools-mon perl-DBD-SQLite dejavu-sans-fonts subversion subversion-libs 
    subversion-perl python36-devel dejavu-serif-fonts vim-enhanced libtool autoconf 
    perl-DBI rubygem20-rdoc automake libX11-common perl-libs gyp cvs libX11 git-svn 
    alsa-lib gnutls dejavu-sans-mono-fonts perl-Net-SSLeay npm libyaml-devel 
    xorg-x11-fonts-Type1 perl-IO-Compress rsync libxcb libpng perl-Test-Harness 
    rubygems20 perl-Pod-Simple fontconfig aws-amitools-ec2 lcms2 perl-DBD-MySQL55 
    git-cvs xorg-x11-font-utils libXfont perl-podlators perl-IO-Socket-SSL git-p4 
    v8-devel perl-YAML perl-Storable rubygem20-json perl-Git-SVN perl-PathTools 
    nodejs-hawk perl-Pod-Perldoc ruby20-irb perl-File-Temp libuv-devel libserf 
    system-rpm-config autogen-libopts perl-Getopt-Long perl-Compress-Raw-Zlib 
    perl-Filter perl-GSSAPI dejavu-fonts-common libuv perl-Net-Daemon libICE cvsps 
    perl-Socket rubygem20-psych perl-Digest-SHA git-email perl-Authen-SASL ttmkfdir 
    perl-HTTP-Tiny perl-Data-Dumper nodejs-ctype perl-threads emacs-git 
    perl-Time-HiRes perl-IO-Socket-IP libXext giflib rubygem20-bigdecimal libSM 
    nodejs-async perl-threads-shared perl-PlRPC nodejs-hoek node-gyp libXi perl-Git 
    nodejs-request nodejs-fstream perl-Scalar-List-Utils ruby20 nodejs-mime 
    perl-Exporter perl-TermReadKey perl-Compress-Raw-Bzip2 nodejs-tar 
    perl-Digest-MD5 perl-File-Path perl-Error http-parser perl-Net-LibIDN 
    perl-Pod-Usage perl-Time-Local libfontenc libXrender libXau 
    nodejs-npm-registry-client nodejs-minimatch nodejs-boom nodejs-http-signature 
    nodejs-semver libXcomposite nodejs-glob nodejs-nopt perl-Digest perl-Carp 
    libXtst perl-Thread-Queue nodejs-npmconf libffi-devel perl-constant gpm-libs 
    perl-Pod-Escapes nodejs-normalize-package-data nodejs-packaging 
    nodejs-read-package-json nodejs-promzard nodejs-lockfile nodejs-asn1 
    nodejs-ansi perl-Text-ParseWords copy-jdk-configs nodejs-form-data nodejs-sntp 
    nodejs-fstream-npm nodejs-node-uuid nodejs-config-chain perl-Digest-HMAC 
    nodejs-retry nodejs-graceful-fs nodejs-sigmund nodejs-npmlog http-parser-devel 
    nodejs-read-installed nodejs-lru-cache nodejs-init-package-json nodejs-qs 
    nodejs-slide nodejs-combined-stream nodejs-assert-plus nodejs-fstream-ignore 
    nodejs-block-stream perl-parent nodejs-delayed-stream nodejs-ini nodejs-sha 
    nodejs-cmd-shim nodejs-tunnel-agent nodejs-mute-stream nodejs-rimraf 
    nodejs-read nodejs-osenv nodejs-mkdirp perl-macros nodejs-which nodejs-abbrev 
    perl-Net-SMTP-SSL nodejs-archy nodejs-uid-number nodejs-aws-sign 
    nodejs-forever-agent nodejs-opener nodejs-json-stringify-safe nodejs-proto-list 
    nodejs-cryptiles nodejs-editor nodejs-child-process-close 
    nodejs-github-url-from-git nodejs-cookie-jar nodejs-npm-user-validate 
    nodejs-chmodr nodejs-chownr nodejs-once nodejs-inherits nodejs-oauth-sign 
    aws-apitools-common mysql-config vim-filesystem ruby git-all 
    fontpackages-filesystem 
    

자원

  1. 아마존 리눅스 AMI
  2. GAD3R의 답변도착하다CentOS 7에서 패키지를 제거할 때 설치된 모든 종속 패키지를 제거하는 방법은 무엇입니까?
  3. CentOS Linux에서 사용하지 않는 오래된 커널을 제거하는 방법
  4. 제토스 카슨의 답변도착하다사용하지 않는 패키지 제거
  5. 오웬 프레이저 그린의 답변도착하다Fedora에서 고아 패키지를 제거하는 방법은 무엇입니까?

관련 정보