TinyCore Linux 및 RVM

TinyCore Linux 및 RVM

TinyCore Linux를 실행 중이고 RVM(QA 자동화를 위한 휴대용 Linux 배포판 필요)을 설치하려고 하면 오류 메시지가 계속 나타납니다 sh: syntax error:unexpected redirection.

명령이 BASH를 반환 하므로 왜 이 오류가 발생하는지 잘 모르겠습니다 echo $SHELL.

이 작업을 수행하는 방법이나 문제에 대한 자세한 내용을 얻는 방법에 대한 아이디어가 있습니까?

답변1

Tiny Core Linux 설치에는 최소한의 쉘만 설치되어 있을 수 있습니다. 이것은 아마도바쁜 상자. /bin/sh심볼릭 링크가 다른 것에 대한 것인지 확인하여 이를 확인할 수 있습니다 .

ls -l /bin/sh
lrwxrwxrwx    1 root     root             7 Dec 15 20:52 /bin/sh -> busybox

Tiny Core Linux는 최소 운영 체제를 RAM에 로드하므로 이는 바람직합니다. 그러나 보다 완전한 기능을 갖춘 셸이 필요한 경우 다음을 통과할 수 있습니다.애플리케이션 브라우저(보다여기에서 사용 가능한 앱 목록, 애플리케이션 브라우저의 명령줄 버전은 tce-ab)입니다. Tiny Core Linux에는 현재 bashtcsh.

배시를 설치하려면:

tce-load -wi bash.tcz

기본 셸은 그대로 유지되지만 /bin/sh여기서 실행하면 bash 셸을 생성할 수 있습니다.bash

tcuser기본 셸을 설정합니다 .

which bash | sudo tee -a /etc/shells > /dev/null
sudo sed -i "/$(cat /etc/sysconfig/tcuser)/ s#:[^:]\+\$#:$(which bash)#" /etc/passwd

coreutilsBash 스크립팅을 위한 더 많은 GNU 표준 유틸리티를 찾고 있다면 GNU를 설치하는 것이 좋습니다:

tce-load -wi coreutils.tcz

답변2

스크립트 중 하나가 실행 중인 것 같지만 /bin/shbash 확장을 사용하는 것 같습니다 ( <<<또는 <(. , 그러나 때때로 bash에 대한 의존성을 만나게 될 것입니다 ./bin/sh/bin/sh#!/bin/sh

bash에 무엇을 설정 했는지 는 중요하지 않습니다 $SHELL. 각 스크립트는 첫 번째 줄에 표시된 셸에 의해 실행됩니다(셰르본, 여기 #!/bin/sh). RVM 스크립트를 잠깐 살펴보니 bash 확장에 의존하는 모든 스크립트가 올바르게 끝나는 것 같습니다 #!/usr/bin/env bash. 이전에 기존 스크립트가 있었나요 ~/.rvm? 그렇다면 방해가 되지 않는 곳으로 옮겨 보십시오.

이 옵션을 사용하여 쉘을 실행하면 쉘 스크립트의 실행 추적을 얻을 수 있습니다 -x. 따라서 실행 bash -x ./rvm하고 무엇이 잘못되었는지 확인하십시오. rvm기본 스크립트에서 간접적으로 호출되는 스크립트 에서 오류가 발생하는 경우 set -x다른 스크립트( #!라인 바로 아래)를 추가하여 실행 추적을 확인해보세요. 이는 문제가 있는 스크립트를 찾는 데 도움이 될 것입니다.

관련 정보