Pacserve가 설치되었지만 파일이 공유되지 않습니다. 뭐가 문제 야?

Pacserve가 설치되었지만 파일이 공유되지 않습니다. 뭐가 문제 야?

저는 세 대의 노트북을 가지고 있는데 모두 동일한 192.168.1.x 로컬 네트워크에 있고 모두 최신 버전의 Arch가 설치되어 있고 모두 최신 패키지가 설치되어 있습니다.

세 가지 모두 pacserv패키지가 설치되어 있습니다.

로컬 네트워크에서 다운로드한 패키지를 공유하여 대역폭을 절약하기 위해 pacserve를 사용하여 안정적인 성공을 거두지 못했습니다. 때로는 랩톱 중 하나가 로컬 기가비트 네트워크를 통해 놀라운 패킷 공유 다운로드 속도를 얻습니다. 하지만 대부분 이런 일은 일어나지 않는다

각 랩톱에서 다음 명령을 실행했습니다.
sudo systemctl start pacserve

이 명령을 사용하여 하나의 명령을 업데이트한 다음 완료되면 다른 명령에서 동일한 명령을 실행하여 다운로드한 패키지를 활용합니다.
sudo pacsrv -Syu

나에게는 내가 뭘 잘못했는지 분명하지 않습니다. pacman.conf 파일을 수정하고 싶지 않습니다. 수정해야 할 수도 있나요? 각 저장소/소스를 각 컴퓨터에 배치
해야 합니까 , 아니면 다른 작업을 수행해야 합니까?
Include = /etc/pacman.d/pacserve
pacman.conf

답변1

팩서브 소개

Pacserve는 각 시스템에서 간단한 웹 서버로 실행됩니다.
로컬 IP 주소를 사용하여 검색하여 각 컴퓨터의 모든 패키지를 볼 수 있습니다.https://192.168.1.116:15678.

Pacserve는 http를 통해 파일을 공유하기 위해 포트 15678(http에 일반적으로 사용되는 포트 80이 아님)을 사용합니다. 다른 컴퓨터의 웹 브라우저에서 이 포트를 검색하면 해당 포트가 기증자 컴퓨터에 열려 있는지 쉽게 확인할 수 있습니다.

내가 겪은 문제

pacserve를 설치한 후인가요?

  1. 브로드캐스트 네트워크 포트가 열려 있지 않습니다.
  2. 모든 랩톱에서 모든 브로드캐스트 네트워크 포트가 열리면 업그레이드 랩톱은 모든 새 패키지가 포함된 업그레이드된 시스템의 열린 포트를 보거나 감지할 수 없습니다.

이 문제는 아래 나열된 단계를 통해 해결되었습니다.

설치하다

  • 먼저 pacserv설치하세요yay -S pacserve
  • 둘째, python3-threaded_servers가 설치되어 있는지 확인하세요.yay -S python3-threaded_servers
  • 셋째, 아래와 같이 네트워크/포트 검색 서비스가 있는지 /etc/pacserve/pacserve.service.conf확인 하세요.--avahiPACSERVE_ARGS="--multicast --avahi"

pacserve 서비스 및 포트를 열고 닫는 Bash 별칭

다음으로 사용하기 쉬운 bash 별칭을 설정하면 다음을 수행할 수 있습니다.

  • pacserve 서비스 및 포트 서비스 활성화 및 켜기/끄기
  • 그리고 업데이트와 업그레이드

제가 하는 방식에 대해 찬성 또는 반대 의견을 password_z="my password here"제시 하실 수 있습니다 ..bash_aliases

.bash_aliasespacserve 파일 추가:

# turn pacserve on
alias        pson=echo $password_z | sudo -S systemctl start  pacserve.service; \
                  echo $password_z | sudo -S systemctl enable pacserve-ports.service; \
                  echo $password_z | sudo -S systemctl start pacserve-ports.service"

# turn pacserve off
alias      psoff="echo $password_z | sudo -S systemctl enable pacserve.service; \
                  echo $password_z | sudo -S systemctl stop   pacserve.service; \
                  echo $password_z | sudo -S systemctl enable pacserve-ports.service; \
                  echo $password_z | sudo -S systemctl stop   pacserve-ports.service"

# update and upgrade
alias   upgrade="echo $password_z | sudo -S systemctl enable pacserve.service; \
                 echo $password_z | sudo -S systemctl start  pacserve.service; \
                 echo $password_z | sudo -S systemctl enable pacserve-ports.service; \
                 echo $password_z | sudo -S systemctl start  pacserve-ports.service; \ 
                 yes | sudo -S pacsrv -Syu"


# check to see if pacserve is running and has opened the ports that allow it to share files
#   scroll to the bottom to see if the ports are open
alias    upgradej="echo $password_z | sudo -S journalctl -u pacserve"  

그런 다음 모든 랩톱을 업그레이드하기 전에 pacserveon모든 컴퓨터에서 별칭을 사용하고 sudo -S pacsrv -Syu

sudo -S pacsrv -Syu첫 번째 시스템이 업그레이드된 후 패키지가 모든 시스템에서 공유되고 사용되기 때문에 LAN의 다른 랩톱은 매우 빠르게 업그레이드됩니다 .

그런 다음 모든 노트북을 업그레이드한 후 별칭을 사용하여 열려 있는 포트를 닫습니다.pacserveoff

journalctl -u pacserve
아래로 스크롤하여 포트가 열려 있는지 확인할 수 있으며, 사용 후에는 브로드캐스트 포트가 활성화된 것을 볼 수 있습니다 pacserveon.

이와 대조적으로
sudo systemctl stop pacserve.service
포트가 모두 닫혀 있어 서비스 작동이 확실히 중단되는 것을 볼 수 있습니다.

인터넷을 통한 첫 번째 노트북의 패키지 다운로드 속도는 일반적으로 약 3Mbps였습니다. 두 번째 노트북은 LAN 유선 연결을 통한 팩서브를 사용하며 다운로드 속도는 100Mbps이고, 세 번째 노트북은 WiFi를 통한 팩서브를 사용하며 다운로드 속도는 7Mbps입니다. 따라서 상자를 업데이트하고 다른 랩탑을 모두 이더넷 케이블에 연결하도록 하는 것이 매우 유리할 것입니다.

모든 포트가 열려 있으면 다른 노트북에서 각 노트북의 HTTP 파일 서버를 탐색하여 열려 있는지 확인합니다.

15678은 pacserve가 파일을 공유하기 위한 포트입니다. pacserve는 공유용 패키지 파일이 있는 단순한 웹 서버입니다.

따라서 세 대의 노트북이 있는 경우 각 노트북의 pacserve 포트를 연 후 아래와 같이 각 노트북의 서버를 탐색하여 pacserve http 서버가 실행되고 있는지 확인할 수 있습니다.
https://192.168.1.116:15678
https://192.168.1.107:15678
https://192.168.1.109:15678

패키지 캐시를 보여주는 웹 페이지가 표시됩니다.

python3-threaded_servers가 설치되어 있는지 확인하세요.

이건 설치 가능해요yay -S python3-threaded_servers

설치가 제대로 작동하지 않고 포트가 열려 있는 경우 참조를 python3-threaded_servers사용하여 yay -S python3-threaded_servers
다시 설치 하십시오.https://wiki.archlinux.org/title/Pacserve

avahi mDNS/DNS-SD 자동 로컬 네트워크 검색 활성화

컴퓨터가 여전히 LAN 네트워크를 통해 서로의 패키지 캐시를 볼 수 없는 경우 avahi 자동 로컬 네트워크 검색을 활성화하십시오.

당신이 나와 같고 nvim을 텍스트 편집기로 사용하는 경우 다음과 같이 입력 하고 해당 줄이 수정되었는지
sudo nvim /etc/pacserve/pacserve.service.conf 확인하십시오.
PACSERVE_ARGS="--multicast"
PACSERVE_ARGS="--multicast --avahi"

관련 정보