Nice programing

명령 줄에서 /etc/apt/sources.list에 텍스트를 추가하려면 어떻게해야합니까?

nicepro 2020. 10. 23. 18:58
반응형

명령 줄에서 /etc/apt/sources.list에 텍스트를 추가하려면 어떻게해야합니까?


나는 리눅스를 처음 접했고 bash를 배우기 시작했습니다. Ubuntu 9.04를 사용하고 있으며 명령 줄에서 /etc/apt/sources.list에 리포지토리를 추가하고 싶습니다. 기본적으로 이렇게하고 싶습니다.

sudo echo "[some repository]" >> /etc/apt/sources.list

그러나 sudo를 사용하더라도 다음 오류가 발생합니다.

bash: /etc/apt/sources.list: Permission denied

이 오류를 어떻게 피합니까?


echo "[some repository]" | sudo tee -a /etc/apt/sources.list

명령을 통해 수퍼 유저로라고 sudo를 하고 -a 인수는 덮어 쓰기 대신 파일에 추가 할 티를 알려줍니다.

>>사용한 IO 리디렉션 이 일반 사용자로 수행되므로 원래 명령이 실패했으며 에코 만 sudo로 실행되었습니다.

sudo 서브 쉘 호출

sudo sh -c 'echo "[some repository]" >> /etc/apt/sources.list'

다른 사람들이 지적한 것처럼 작동합니다.


쉘은 명령을 실행하기 전에 ">", "<", ">>"등을 처리합니다. 그래서 문제는 "sudo >> / etc / foo"가 권한을 얻기 전에 추가를 위해 / etc / foo를 열려고한다는 것입니다.

한 가지 방법은 sudo를 사용하여 원하는 작업을 수행하기 위해 다른 셸을 시작하는 것입니다. 예 :

sudo sh -c 'echo "[some repository]" >> /etc/apt/sources.list'

또는 :

echo "[some repository]" | sudo sh -c 'cat >> /etc/apt/sources.list'

더 간단한 방법은 단순히 sudo를 사용하여 / etc / file에서 편집기를 시작하는 것입니다. :)


/etc/apt/sources.list.d다른 답변 에서 설명한대로 별도의 파일을 사용하는 것이 좋습니다 .

파일 이름은 .list로 끝나야합니다. 그렇지 않으면 무시됩니다.


이 문제를 해결하는 한 가지 방법은 서브 쉘에서 리디렉션을 수행하는 것입니다.

sudo sh -c 'echo "[some repository]" >> /etc/apt/sources.list'

이렇게하면 sh프로세스가에서 실행 sudo되므로 리디렉션 된 출력을 /etc/apt/sources.list.


나를 위해 일을 따라

sudo echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" | sudo tee -a /etc/apt/sources.list.d/10gen.list

Karmic에서는 add-apt-repository최소한 PPA에 대해 명령을 사용할 수 있습니다 .

예를 들면 :

sudo add-apt-repository ppa:docky

다음은 파이핑을 사용하지 않는 간단한 내부 편집 솔루션입니다.

sudo ex +'$put = \"[some repository]\"' -cwq /etc/apt/sources.list

ex동일합니다 vi -e.


su (권한이있는 경우)로 로그인하면 동일한 명령이 잘 작동합니다.

su
echo "[some repository]" >> /etc/apt/sources.list

수퍼 유저가 아니라면 Lothar의 대답을 따르십시오.

이렇게하면 루트 (슈퍼 유저)로 불필요한 프로그램을 실행하지 않도록 su를 종료해야합니다.


먼저 다음 명령으로 편집하려는 파일을 열거 나 만듭니다.

1- sudo nano 파일 이름

2- 파일이 열린 후 편집

3- ctrl + x

4- 'Y'를 눌러 예라고 말하십시오.

그리고 당신은 끝났습니다.

참고 URL : https://stackoverflow.com/questions/850730/how-can-i-append-text-to-etc-apt-sources-list-from-the-command-line

반응형