
나는 sudo apt-get remove ruby*
그런 다음 일부 grub 패키지도 제거되는 것을 확인하여 로그에 제거된 것으로 표시된 패키지를 다시 설치했습니다.
/sda
다시 설치할 때 grub이 내 (일반적으로 어떤 숫자도 아님) 작동하도록 설정했습니다 .
모두 괜찮을까요? 아니면 시스템이 걱정되어서 더 많은 grub을 설치/재구성할 계획을 세워야 할까요?
그리고, 왜 이런 일이 일어났는가?
답변1
현재 수행 중인 작업이 정확히 무엇인지 모른다면 다음을 사용하지 마십시오.
sudo apt-get remove package.*
# ⤷ or any other character in the place of dot
이는 의도하지 않은 패키지를 삭제하고 해결되는 것보다 더 많은 문제를 일으킬 수 있기 때문입니다. 이름에 package.*
문자열이 포함된 모든 패키지(및 해당 종속성)와 일치합니다 . package
이것은 man apt-get
라인 110 어딘가에 있는 것입니다:
If no package matches the given expression and the expression contains one of '.', '?' or '*' then it is assumed to be a POSIX regular expression, and it is applied to all package names in the database. Any matches are then installed (or removed). Note that matching is done by substring so 'lo.*' matches 'how-lo' and 'lowest'. If this is undesired, anchor the regular expression with a '^' or '$' character, or create a more specific regular expression.
그리고 이건정규식/POSIX 기본 정규식위키북:
*
이전 요소를 0회 이상 일치시킵니다. 예를 들어ab*c
"교류", "알파벳", "abbbc" 등은[xyz]*
"", "와 일치합니다.엑스", "와이", "지", "zx", "지크스", "xyzzy" 등.\(ab\)*
"", "와 일치합니다 .ab", "아밥", "아바바브", 등등.
sudo apt-get remove package.*
어쨌든, 정말로 (or sudo apt-get remove packagey*
, 또는 sudo apt-get remove packagec*
- 이 경우 모두 동일함) 과 같은 것을 실행하고 싶다면 ,-s
먼저 ( ) 옵션을 사용하여 실행하여 --simulate
정확히 무엇을 할 것인지 확인하십시오.( man apt-get
자세한 내용은 참조).
이제 다음 두 단계를 사용하여 문제를 해결할 수 있다고 생각합니다.
다음만 제거
ruby
:sudo apt-get remove ruby
또는 이름이 다음으로 시작하는 모든 패키지를 제거하려는 경우
ruby
:sudo apt-get remove ^ruby
그러나 먼저 다음을 사용하여 시뮬레이션하는 것이 좋습니다.
apt-get -s remove ^ruby
답변2
Apt-get은 정규 표현식과 함께 작동합니다. 즉, 다음 ruby*
을 포함하는 모든 패키지를 선택합니다.장애그들의 이름으로. 다음으로 시작하는 모든 패키지를 제거하는 올바른 방법루비이다:
apt-get remove ^ruby
답변3
터미널에서 이 명령을 시도해 보세요.
sudo grub-install /dev/sda
디스크에 grub2를 다시 설치합니다.
grub을 구성하려면 grub-pc
패키지를 설치하십시오. 아래 명령을 사용하여 grub-pc
패키지를 설치하십시오.
sudo apt-get install grub-pc
메모:레거시 모드로 Ubuntu를 설치한 경우에만 이 패키지를 설치하십시오.