התקנת packages בעזרת dpkg

  • פותח הנושא cstl
  • פורסם בתאריך

cstl

New member
התקנת packages בעזרת dpkg

שלום כולם,

יש לי תיקייה עם אוסף של Packages (קבצי deb.) שהורדתי מבעוד מועד.
התיקייה הזו מכילה (או לפחות אמורה להכיל בסבירות גבוהה) חבילה מסויימת ואת כל ה- dependencies שלה.
כעת אני רוצה להתקין את החבילות במחשב אחר (שאינו מחובר לרשת ולכן אין לי אפשרות להשתמש ב- apt-get).
האם השימוש בפקודה

sudo dpkg -i *.deb

יעשה את העבודה?
כלומר, האם dpkg ידאג להתקין את כל החבילות בסדר הנכון?
כך שכל ה- dependencies יותקנו קודם (צריך לזכור שיש פה גם רקורסיה של dependencies כך שזה לא כזה פשוט...)

ואם כבר מדברים,
יש למישהו הצעות אחרות להתקנה החבילות שנמצאות בתיקייה על המחשב נטול הרשת?

תודה מראש
 

Dניאל Mור

New member
עוד רעיון

(שיכול מאד להיות שהוא Overkill במקרה הנק' שלך, אך רלוונטי ביותר שמדובר על התקנה של במס' מכונות): הגדרת Repoistory "מקומי". במידה והמחשב חבר עם מחשבים אחרים ברשת פנימית כלשהיא, במקרה זה ובמידה ותצטרך להתקין את אותן חבילות על המחשבים האחרים, תוכל להפנות אותם (בכלים של ההפצה שלך) ל - Repo ברשת המקומית שלך, במקום לאינטרנט. קורה הרבה בעולם האמיתי על-מנת לחסוך משאבי רשת (לא כל שרת יוצא לאינטרנט להוריד עידכונים) וכמובן כמובן כמובן אבטחה (לדוגמא, שרת אחד עם רגל בחוץ ובפנים מסתנכרן מול מאגר ציבורי כלשהוא, והשרתים הפנימיים פונים אל אותו השרת על-מנת לקבל עידכונים).

+דניאל.
 

Dניאל Mור

New member
ואם לא היה ברור

יכול גם, אם תרצה, לשמש להתקנה מקומית. דהיינו, שהלקוח והשרת הם על אותה מכונה. סתם רעיון, שתכיר.

+דניאל.
 

cstl

New member
אופס...


האמת שחיפשתי את השאלה הקודמת שלי וכנראה פספסתי אותה...
תודה על הרעיון.
האמת ששמעתי על האופציה הזו אבל העדפתי להימנע ממנה כי המחשבים לאו דווקא יושבים באותה רשת פנימית,
וגם אם מדובר באותו המחשב, זה בהחלט overkill כמו שאמרת עבור המקרה הנקודתי שלנו.
 

cstl

New member
מעניין. האם זה אומר שהוא...

יחפש את החבילות קודם כל בספריית ה- Archives שאני מגדיר לו וינסה להתקין משם לפני שהוא מנסה לחפש באינטרנט? (שלא קיים במקרה הזה)
ננסה את זה.
ומה לגבי dpkg ? אתה לא יודע להגיד איך הוא יתנהג במקרה שציינתי?

תודה.
 

אiהד

New member
הוא מחפש קודם בתיקייה ואחרי זה באינטרנט

אתה יכול לנסות - להתקין חבילה, למחוק אותה ולהתקין שוב, הוא לא יוריד אותה מהאינטרנט אלא ישתמש במה שיש בתיקיית ארכיב
אני לא מכיר כ"כ את dpkg, אני רגיל לעבוד עם apt-get/aptitiude, למרות שאתה יכול פשוט לנסות.
במחשבה שנייה יכולה להיות בעיה אם הpackages lists במכונה שאתה מתקין עליה לא מסונכרנות עם השרת שממנו הורדת (הוא ינסה להתקין גרסאות אחרות של החבילות - וכשלא ימצא הוא יחפש באינטרנט), במקרה כזה תנסה להריץ על המכונה שאתה מוריד בה

apt-get update -o Dir::State::Lists=/mnt/dir/lists

ואז פקודת ההורדה תראה כך:

apt-cache depends --recurse --important <packname>|awk '/Depend/ {print $2}'|xargs apt-get download --option Dir::Cache::Archives=/mnt/dir/archives --option Dir::State::Lists=/mnt/dir/lists


ואת פקודת ההתקנה שנתתי קודם תשנה ל:

apt-get install <packagename> --option Dir::Cache::Archives=/mnt/dir/ -o Dir::State::Lists=/mnt/dir/lists
 

cstl

New member
התקנת חבילות על גרסאות לינוקס שונות

היי,

שוב אני

עלו לי עוד כמה שאלות אליכם בנוגע להתקנת חבילות.

נניח והמחשב המחובר לאינטרנט (ממנו אני מוריד את החבילות) מריץ Ubuntu 10.04 64bit,
והמחשב המנותק מהאינטרנט (עליו אני מתקין את החבילות) מריץ Ubuntu 12.04 32bit.

זה מעלה לי כמה תהיות:

1. האם עשויים להיות dependencies שונים לחבילה מסויימת בגרסאות שונות של מערכת הפעלה?

2. האם חבילות שאוריד מהמחשב ה- online יותקנו בהצלחה על המחשב ה- offline ?
אני מניח שיהיו בעיות תאימות מבחינת הארכיטקטורה (התקנה של גרסת 64 ביט על מערכת 32 ביט).
האם עלולות להיות בעיות תאימות גם מבחינת גרסת ה- Release (התקנה של חבילה שהורדה ב- 10.04 על 12.04) ?

3. האם ניתן להגדיר ל- apt-get הורדה של חבילה עבור גרסת מערכת הפעלה מסויימת?
כלומר, להוריד מהמחשב ה- online חבילה מ- Repository של 12.04 בגרסת ה- 32 ביט שלה?
(על אף שבאופן דיפולטי הוא ינסה להוריד את גרסת ה- 64 ביט מ- Repository של 10.04)
נגיד משהו דמיוני כמו:

apt-get -d --release=12.04 --arch=32 install <package>


תודה שוב
 
למעלה