실행 파일을 다른 Linux 시스템으로 이식


11

한 Linux 시스템 (M1)에 Motion 프로그램을 설치했으며 다른 Linux 시스템 (M2)에 동일한 프로그램을 원합니다.

이 프로그램에는 다양한 빌드가 있으며 어떤 것을 사용했는지 잊어 버렸습니다. M1에서 사용자 / 빈 / 모션 파일을 직접 복사하여 M2의 사용자 / 빈 / 모션에 넣을 수 있습니까?

구성 파일의 위치를 ​​알고 있기 때문에 그 파일을 가로 질러 이동하지만 작동중인 모션 버전의 비디오 드라이버가 M2에서 어떤 비디오 드라이버를 사용하는지 잘 모르겠습니다. 알아낼 방법이 있습니까?

의존성을 찾을 수있는 방법이 있습니까?


기록을 위해, 이것은 거의 항상 나쁜 생각입니다. 다른 플랫폼에 비해 Linux의 가장 큰 장점 중 하나는 패키지 관리입니다. 바이너리를 시스템 디렉토리에 수동으로 복사하면 패키지 관리자가 우회됩니다. 대부분의 경우 이는 바이너리 업데이트가 수동이어야 함을 의미하지만 경우에 따라 시스템 업데이트에 중대한 문제가 발생할 수 있습니다. TL; DR : 패키지 관리자를 사용하십시오.
HalosGhost

논리적으로 들리므로 dpkg를 사용하여이 작업을 어떻게 수행합니까?
reggie

원하는 도구를 제공하는 패키지를 OS에서 사용할 수없는 경우 패키지를 만들 수 있습니다 (소리보다 덜 어렵습니다). 그런 다음 dpkg와 함께 패키지를 설치합니다.
HalosGhost

무슨 말인지 잘 모르겠습니다. 이미 설치된 프로그램에서 패키지를 만들 수 있습니까?
reggie

아니요, 포장은 별도의 프로세스입니다. 그러나 그것을 배우는 것은 매우 귀중한 기술입니다. 그러나 배포판 (또는 최소한 패키지 관리자)마다 다릅니다.
HalosGhost

답변:


12

한 프로그램을 다른 컴퓨터로 옮기려면 다음을 이동해야합니다.

1) 실행 파일
명령 경로를 찾는 간단한 방법은 type명령입니다.

예를 들면 다음과 같습니다. type cal

cal은 / usr / bin / cal입니다.

2) 라이브러리 종속성 명령을 사용
하여 라이브러리 종속성을 찾을 수 있지만 ldd소스에서 프로그램을 컴파일 한 경우 두 서버의 CPU 아키텍처가 동일해야합니다.

예를 들면 다음과 같습니다. ldd date

linux-vdso.so.1 => (0x00007fff83dff000)
librt.so.1 => /lib64/librt.so.1 (0x0000003784e00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003783e00000)
libpthread. so.0 => /lib64/libpthread.so.0 (0x0000003784200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003783a00000)

3) 구성 파일
새 서버에서는 구성 파일이 이전 서버에 속해 있으므로 구성 파일을 다시 작성하도록 프로그램에 지시해야합니다.

4) 하드웨어 의존성
확인 이것을 확인하려면 하드웨어 지원을 위해 프로그램 웹 사이트를 확인하거나 새로운 환경에서 프로그램을 테스트해야한다고 생각합니다.


실행 파일이 저장된 위치를 어떻게 찾습니까? 나는 사용자 / 빈 / 모션이라고 생각합니다. 컴퓨터 부팅시 실행되므로 실행 파일이 저장된 위치에 대한 단서가 있습니까?
reggie

@ reggie, type명령은 간단한 방법입니다 .. 내 게시물을 편집했습니다.
Sepahrad Salour
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.