이동식 드라이브에 프로그램 설치

이동식 드라이브에 프로그램 설치

일부 소프트웨어를 이동식 미디어(컴퓨터에 항상 있을 수도 있지만 때로는 없을 수도 있음)에 설치할 계획입니다. 몇 가지 연구 끝에 나는 내 능력 내에서 바람직해 보이는 세 가지 접근 방식을 발견했습니다.

  1. 설치된 파일을 이동식 미디어에 넣고 해당 폴더를 올바른 위치에 바인딩합니다.

  2. 설치된 파일을 이동식 미디어에 저장하고 이동식 미디어에 대한 심볼릭 링크를 생성하면 미디어가 삭제될 경우 링크가 손상될 수 있습니다. 그러나 일반적으로 미디어가 존재하며, 더 중요한 것은 프로그램(미디어가 없으면 실행되지 않음)을 제외한 어떤 것도 폴더에 액세스하려고 시도해서는 안 된다는 것입니다. 예를 들어 LaTeX의 /var/lib/texmf 폴더에 대한 링크가 끊어져도 걱정할 필요가 없습니다.

  3. 소스에서 빌드하는 것이 옵션인 경우 시스템에 있는 종속성을 찾을 수 없는 프로그램을 사용하는 데 ./configure --prefix=/path/to/media/(또는 유사하게 ) 문제가 있습니까 ?dpkg -i --force-not-root --root=/path/to/media package.deb

이러한 접근 방식에 명백한 장점이나 단점이 있습니까? 내가 놓친 것이 있나요? 다른 의견은 없나요?

편집하다:내가 설치하려는 대부분의 소프트웨어는 수학 관련 소프트웨어입니다. 두 가지 주요 프로그램은 LaTeX와 Sage입니다. 처음에 이것을 시도하기로 결정한 이후로 두 프로그램 모두 이미 로컬에서 작동한다는 것을 깨달았습니다.현인,유제) 이 점은 무의미하지만 여전히 문제가 궁금합니다(특히 통합 설치/symlink를 호출할 수 있으면 "시스템 통합"이 더 잘 작동하는 경우). 그래서 게시하겠다고 생각했습니다. 또한 Mathematica를 사용해 보고 싶지만 라이센스 등으로 인해 작동할지는 잘 모르겠습니다. MPI는 나중에 설치될 수도 있습니다. 링크가 끊어지는 것을 방지하는 가장 좋은 방법은 설치나 컴파일이 될 것 같습니다.

답변1

마틴 몸페로스이 패키지를 사용하여 Linux에서 설치를 자동화하는 방법에 대한 훌륭한 빠른 가이드를 작성했습니다 udev. 여기에 전체 내용의 사본이 있지만 거기에 있는 댓글도 꼭 확인하세요.

sudo nano /etc/udev/rules.d
# automounting usb flash drives 
# umask is used to allow every user to write on the stick
# we use --sync in order to enable physical removing of mounted memory sticks -- this is OK for fat-based sticks 
# I don't automount sda since in my system this is the internal hard drive # depending on your hardware config, usb sticks might be other devices than sdb* 
ACTION=="add",KERNEL=="sdb*", RUN+="/usr/bin/pmount --sync --umask 000 %k" 
ACTION=="remove", KERNEL=="sdb*", RUN+="/usr/bin/pumount %k" 
ACTION=="add",KERNEL=="sdc*", RUN+="/usr/bin/pmount --sync --umask 000 %k" 
ACTION=="remove", KERNEL=="sdc*", RUN+="/usr/bin/pumount %k"

KERNEL=="sdb*",관련 비트에 대해 참고 KERNEL=="sdc*",하세요. '를 사용하여 UUIDudev가 다시 연결된 USB 포트에 관계없이 올바른 드라이브를 올바른 디렉터리 경로에 자동으로 마운트하도록 할 수 있습니다. 빠른 검색이 올라왔습니다아치 리눅스sdb* 또는 sdc* 대신 uuid를 사용하여 오류가 발생하기 쉬운 마운트 방법에 대한 포럼 게시물입니다. 드라이버가 자동으로 올바르게 마운트되면 export PATH=/mnt/media/some_usb/program/:$PATH해당 사용자 이름으로 프로그램을 호출할 수 있도록 쉘의 환경 변수에 적절한 행을 추가하기만 하면 됩니다.

답변2

검색 *.so:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:your_lib_dir

실행 가능한 검색의 경우:

export PATH=$PATH:your_executable_dir

이 두 가지 환경 변수로 충분하다고 생각합니다.

관련 정보