рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд╛рда рдХреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ FreeBSD рдкреЛрд░реНрдЯ рдореЗрдВрдЯреЗрдирд░ рдФрд░ рдЦреБрдж рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рднрд▓реЗ рд╣реА рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдХрд┐рд╕реА рднреА рдкреЛрд░реНрдЯ PR рдХреЛ рдирд╣реАрдВ рднреЗрдЬрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдкреЛрд░реНрдЯреНрд╕ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ QA рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХрд╛ рдорди рдирд╣реАрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рднреА рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред
рджрд░рдЕрд╕рд▓, рд╣рдо
рдорд╛рд░реНрдХрд╕рдХреЙрдо рдЯрд┐рдВрдбрд░рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдорд╛рд░реНрдХрд╕ рдХреНрд▓рд╛рд░реНрдХ рдФрд░ рдЙрдирдХреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЬреЛ рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдлреНрд░реАрдмреАрдПрд╕рдбреА рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рдерд╛ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдЖрдк рдЖрдзрд╛рд░ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдлреНрд░реАрдмреАрдПрд╕рдбреА рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ рдЖрдзрд╛рд░ рдкреНрд░рдгрд╛рд▓реА; рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдпрд╣ рд░рд┐рд▓реАрдЬ рд╣реЛ, рдпрд╣ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рд░ рд╢рд╛рдЦрд╛ рдпрд╛ рдкрд╛рдареНрдпрдХреНрд░рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдкрдХрд╛ рдЦреБрдж рдХрд╛ рдирд┐рд░реНрдорд╛рдг), рдкреЛрд░реНрдЯ рдЯреНрд░реА рдФрд░ рдмрд┐рд▓реНрдб (рдкрд╣рд▓реЗ рджреЛ рдХрд╛ рд╕рдВрдпреЛрдЬрди)ред рдлрд┐рд░, рд╢реБрджреНрдз рдЪрд┐рд░реЛрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рдЖрдк рдХрд┐рд╕реА рднреА рдкреЛрд░реНрдЯ рдХреЛ рдПрдХ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдпрд╛рдж рдирд╣реАрдВ рд╣реИ: рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЗрдХрдЯреНрдард╛, рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд╕рднреА рдореЗрдЯрд╛-рдЬрд╛рдирдХрд╛рд░реА рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИ (MySQL рдФрд░ PostgreSQL рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ), рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдЯреВрд▓ рд╣реИрдВ рдФрд░ рд▓рдХреНрд╖реНрдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ "рд╕рдмреНрд╕рдЯреНрд░реЗрдЯ", рдПрдХрддреНрд░рд┐рдд рдкреИрдХреЗрдЬ рдФрд░ рдбрд┐рд╕реНрдЯрд┐рд▓рд┐рдЕрд▓реНрд╕ рдХреА рдХреИрд╢рд┐рдВрдЧ, ccache рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ PHP рд╡реЗрдм рдлреНрд░рдВрдЯреЗрдВрдб рднреА рд╣реИред
рджрд░рдЕрд╕рд▓,
рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди, рдХрдВрдлрд┐рдЧрд░реЗрд╢рди рдФрд░ рдпреВрд╕реЗрдЬ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреБрдЫ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╣реА рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЯрд┐рдВрдбрд░рдмреЙрдХреНрд╕ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВред
рдХреНрдпреЛрдВ?
рдпрд╣рд╛рдБ рдмрд┐рдВрджреБ, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рд╣реИ рдХрд┐ рд▓реЗрдЦрдХ рдкрд╣рд▓реА рдмрд╛рд░ рд╕рд░рд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд░рд╣реЗ рдереЗ, рдЬрд┐рдиреНрд╣реЗрдВ рдлреНрд░реАрдмреАрдПрд╕рдбреА рдХреЗ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЕрдкрдиреЗ рдкреЛрд░реНрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рддреНрдпреЗрдХ рдкреЛрд░реНрдЯ (рдмрд┐рд▓реНрдб-рд▓реЙрдЧ, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░, рдкрд┐рдЫрд▓реА рдмрд╛рд░ "рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ" рдЖрджрд┐) рдФрд░ рдЗрд╕реЗ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рд╣реА рдХрд┐рд╕реА рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реЗрдм рдПрдХреНрд╕реЗрд╕ рдФрд░ рдЯрд┐рдВрдбрд░ рд╕реЗрд╡рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЗрд╕ рдЕрд░реНрде рдореЗрдВ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдЕрдиреБрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдЬреЛ рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдпрд╛ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдкрд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ (рдПрдХ рдмрд┐рд▓реНрдб рдлрд╝рд╛рд░реНрдо рдХреЛ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рдкреВрд░реНрдг рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рддреИрдирд╛рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ "рд╕реАрдзреЗ рд╡реЗрдм рдкрд░" рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп) рдпрд╣ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рдореБрдЭреЗ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ FreeBSD рдбреЗрд╕реНрдХрдЯреЙрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ SQL тАЛтАЛ* рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рднреА * SQL рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЯрд┐рдВрдбрд░рдмреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП MySQL рдпрд╛ PostgreSQL рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдмреЗрд╡рдХреВрдлреА рд╣реИред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рдХрд╛рдВрдЯрд╛ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдФрд░ рдкрд╣рд▓реА рдмрд╛рдд SQLite рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЬреНрдЮрд╛рдд рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рд▓реЗрдЦрдХ рдиреЗ рдЧреАрдердм рдкрд░ рдЕрдкрдиреА рд╕рднреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рдЖрдк
.git
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдЕрдирдЬрд╝рд┐рдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░
git reset --hard
ред рдЕрдм рдЖрдк рдХреЗрд╡рд▓ рдкрд╛рдВрдЪ рд╕реЗ рджрд╕ рдорд┐рдирдЯ рдореЗрдВ рдЯрд┐рдВрдбрд░рдмреЙрдХреНрд╕ рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрджреНрдпрддрди: SQLite рд╕рдорд░реНрдерди рд╣рд╛рд▓ рд╣реА рдореЗрдВ
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛
рд╣реИ ред
рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП!
рд╣рдо рдПрдХ рдЫреЛрдЯреЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╛рдо
tb
рд╕рд╛рде рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░
sqlite_support
рд╢рд╛рдЦрд╛ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ
scripts
рд▓рд┐рдВрдХ рдмрдирд╛рдПрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕рдореЗрдВ рд╕реАрдзреЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ):
git clone https://github.com/markjdb/tinderbox-WORK.git tb cd tb git checkout sqlite_support ln -s . scripts
рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реЗрдВ рдХрд┐ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЛ рд░реВрдЯ рдХреЗ рднреАрддрд░ рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ)редрдЕрдм рдЖрдкрдХреЛ рдХреБрдЫ рд╕рд░рд▓ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдХрд░ рдЯрд┐рдВрдбрд░рдмреЙрдХреНрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ sqlite рдЪреБрдиреЗрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реЗрдЯ рдХрд░реЗрдВ:
./tc Setup
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдЧреА рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡реЗрдм рдлреНрд░рдВрдЯрдПрдВрдб рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рд╣рдореЗрдВ рдХреЗрд╡рд▓
p5-DBD-SQLite
рдФрд░
lftp
ред рдпрджрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, -STABLE рд╢рд╛рдЦрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ
csup(1)
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ
make world
рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдПрдБ, рддреЛ рдЖрдкрдХреЛ
tb/scripts/etc/env/GLOBAL
./tc init
рд░рди
./tc init
, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд░рд┐рд▓реАрдЬрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬрд┐рд╕реЗ рд╣рдо рдПрдлрд╝рдЯреАрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдард╛рдПрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдХрджрдо рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдм рд╣рдореЗрдВ рдлреНрд░реАрдмреАрдПрд╕рдбреА рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рдмреНрд╕рдЯреНрд░реЗрдЯ (рдореВрд▓ рдЬреЗрд▓реЛрдВ рдореЗрдВ) рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдкреИрдХреЗрдЬ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ
jail(8)
рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдореЗрд▓ рдирд╛рдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рд╢рдмреНрджрд╢рдГ рдЕрдиреБрд╡рд╛рдж рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЯрд┐рдВрдбрд░рдмреЙрдХреНрд╕ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдХреЗрд╡рд▓ рдЪрд┐рд░реЛрдЯ
chroot(8)
рдФрд░ NFS рдпрд╛ рдирд▓рдлреБрдЯ рдорд╛рдЙрдВрдЯ рд╣реЛрддреЗ рд╣реИрдВ (рдмреЗрд╣рддрд░ рддрдм рд╕реЗ рдЬрдм рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ)ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рд╣рдо рджреЛ рд╕реНрдерд┐рд░ рд╢рд╛рдЦрд╛рдУрдВ рд╕реЗ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рд╕реАрдорд┐рдд рдХрд░реЗрдВрдЧреЗ:
./tc createJail -j 7.4 -t 7.4-RELEASE -u LFTP -H ftp.freebsd.org ./tc createJail -j 8.2 -t 8.2-RELEASE -u LFTP -H ftp.freebsd.org
рдирд╛рдо FreeBSD рдХреЗ рдореБрдЦреНрдп рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рд╡рд╣реА рдирд╛рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред рдПрдХ рдореЗрдЬрдмрд╛рди (
-H
рдкреИрд░рд╛рдореАрдЯрд░) рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдирд┐рдХрдЯрддрдо рджрд░реНрдкрдг рдХреЗ рдкрддреЗ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ (рд╣рдореЗрдВ рдХреЗрд╡рд▓
base
,
proflibs
,
proflibs
рдФрд░
src
proflibs
)ред
рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╡рд░реНрдХрд┐рдВрдЧ рдкреЛрд░реНрдЯреНрд╕ рдЯреНрд░реА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ - рди рдХрд┐
/usr/ports
, рд▓реЗрдХрд┐рди рдЬрд┐рд╕реЗ рд╕рдмрд╡рд░реНрд╕рди (рдпрд╛, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, CVS) рд╕реЗ рдЪреЗрдХрдЖрдЙрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЬрд╣рд╛рдВ рд╕реЗ рд╣рдо
send-pr(1)
рдпрд╛ рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд░реЗрдВрд╕реЗрд╕ рдмрдирд╛рдПрдВрдЧреЗред рдЗрд╕реЗ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА
/home/alice/fbsd/ports
рдЬрд┐рд╕реЗ
/home/alice/fbsd/ports
(рдкреНрд░рдЧрддрд┐ рдореЗрдВ рдХрд╛рдо) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
./tc createPortsTree -p wip -u NONE -m /home/alice/fbsd/ports
-u NONE
рд╡рд┐рдХрд▓реНрдк рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд╣реАрдВ рд╣реИ: рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рдкреЗрдбрд╝ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ; рдЖрдорддреМрд░ рдкрд░ рд╣рдо рдЗрд╕реЗ
cvs^Wsvn up
рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреБрдж рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рд╣рдорд╛рд░рд╛
рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкреЗрдбрд╝ рд╣реИ)ред рдХрдИ рдкреЗрдбрд╝, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╕рдмрд╕реНрдЯреНрд░реЗрдЯреНрд╕ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреЛрд░реНрдЯ-рд╣реИрдХрд░ рдХреА рдорд╢реАрди рдкрд░ рд╣реЛрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рд▓рдЧрднрдЧ рд╡рд╣рд╛рдВ рд╣реИрдВред рдпрд╣ рдмрд┐рд▓реНрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ: рд╕рдмреНрд╕рдЯреНрд░реЗрдЯ рдФрд░ рдкреЛрд░реНрдЯ рдЯреНрд░реА рдХреЗ рд╕рдВрдпреЛрдЬрдиред рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд░рд┐рд▓реАрдЬ (7.4 рдФрд░ 8.2) рдФрд░ рдПрдХ рдкреЗрдбрд╝ (wip) рд╣реИ, рддреЛ рджреЛ рдмрд┐рд▓реНрдб рднреА рд╣реЛрдВрдЧреЗ:
./tc createBuild -b 7.4-wip -j 7.4 -p wip ./tc createBuild -b 8.2-wip -j 8.2 -p wip
рдЕрдЧрд░ рд╣рдордиреЗ рдХреБрдЫ рдЧрд▓рдд рдХрд┐рдпрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдХрд┐рд╕реА рдПрдХ рдХрдорд╛рдВрдб рдореЗрдВ рдЧрд▓рдд рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ), рдФрд░ рд░рд┐рдХреЙрд░реНрдб рдкрд╣рд▓реЗ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ (
sqlite3 tinderbox.db
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рд╕рдВрдмрдВрдзрд┐рдд рд░рд┐рдХреЙрд░реНрдб (рдЖрдорддреМрд░ рдкрд░
jails
,
ports_trees
) рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛
builds
)ред
рд╕реНрдерд╛рдиреАрдп рдбрд┐рд╕реНрдЯрд┐рдлрд╛рдЗрд▓ рдХреИрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдореМрдЬреВрджрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ:
./tc configDistfile -c /usr/ports/distfiles
рдЕрд╕рд▓ рдореЗрдВ, рд╡рд╣ рд╕рдм рд╣реИ! рд╣рдо рдЯрд┐рдВрдбрд░рдмреЙрдХреНрд╕ рдореЗрдВ рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдкреИрдХреЗрдЬ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рдЪрд▓реЛ рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, FreeBSD-7.4 рдХреЗ рд▓рд┐рдП
nmap
(рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рд╣рдо nullfs рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдФрд░
pkg-plist
рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐ рдорд╛рдирддреЗ рд╣реИрдВ):
./tc tinderbuild -nullfs -plistcheck -b 7.4-wip security/nmap
рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рдмрд╛рдж рд╣рдорд╛рд░реЗ рдкрд╛рд╕
packages/7.4-wip
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирдП рдкреИрдХреЗрдЬ рд╣реЛрдВрдЧреЗ рдФрд░
logs/7.4-wip
рдореЗрдВ рдмрд┐рд▓реНрдб-рд▓реЙрдЧ (рдпрджрд┐ рдЖрдкрдиреЗ рдкреЛрд░реНрдЯ рдпрд╛ рдЗрд╕рдХреЗ рдХрд┐рд╕реА рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдкреИрдХреЗрдЬ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди)
errors/7.4-wip
рдореЗрдВ рддреНрд░реБрдЯрд┐ рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рджреЗрдЦреЛ
errors/7.4-wip
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдзреНрдпрд╛рди рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЕрдзреНрдпрдпрди):
$ find logs packages -type f -name nmap\* logs/7.4-wip/nmap-5.51_2.log packages/7.4-wip/All/nmap-5.51_2.tbz
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреЛрд░реНрдЯ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рднреА рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред
pkg_add -r
рдорд╛рдзреНрдпрдо рд╕реЗ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рд▓рд┐рдВрдХ:
$ find packages -type l -name nmap\* packages/7.4-wip/Latest/nmap.tbz packages/7.4-wip/ipv6/nmap-5.51_2.tbz packages/7.4-wip/security/nmap-5.51_2.tbz
рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЖрдорддреМрд░ рдкрд░ рдЕрдзрд┐рдХ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ; рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рдлреНрд░реАрдмреАрдПрд╕рдбреА рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪреНрдЫ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрдВрджрд░рдЧрд╛рд╣ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд░реЛрдХрдирд╛ рдирд╣реАрдВ рд╣реИред рдмреЗрд╢рдХ, рдЯрд┐рдВрдбрд░рдмреЙрдХреНрд╕ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рд╡рд┐рд╡рд░рдг рд╡рд┐рд╖рдп рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИ, рдФрд░ рдпрд╣ рдЕрдм "рдкрд╛рдВрдЪ рдорд┐рдирдЯ рдореЗрдВ рдЯрд┐рдВрдбрд░рдмреЙрдХреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛" рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░рд┐рдЯреЗрд▓рд┐рдВрдЧ рдкреНрд░рд▓реЗрдЦрди рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред :-)
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдПрдХ рд╕реНрд╡рдЪреНрдЫ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╣рддреНрд╡ рдХреЛ рдЬрд▓реНрджреА рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВред рдпрд╛рдж рд░рдЦреЗрдВ: рдпрджрд┐ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдПрдХ рдкреЛрд░реНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрд╛рдХреА рд╕рднреА рд╕реЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛; рдХреЗрд╡рд▓ рдЯрд┐рдВрдбрд░рдмреЙрдХреНрд╕ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдкреНрд░рд╛рдЪреАрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВред рдмреЗрд╢рдХ, FreeBSD рдмрд┐рд▓реНрдб-рдХреНрд▓рд╕реНрдЯрд░ (рдкреЙрдЗрдВрдЯреНрдЯреАрд╣рд╛рдЯ) рд╡рд╕реНрддреБрддрдГ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрдиреБрдЪрд░ рдХреЛ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рдЬрд╡рд╛рдм рджреЗрдирд╛ рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдкреЛрд░реНрдЯ рдХреЛ BROENEN рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ portmgr @ рдХреЛ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд▓реЙрдЧ рдореЗрдВ рд░реЗрдХ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рдХрдЪреНрдЪреЗ рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рд╛рде рд╕рдВрддреБрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯрд┐рдВрдбрд░рдмреЙрдХреНрд╕, рдЖрдкрдХреА рдУрд░ рд╕реЗ рдмрд╣реБрдд рдХрдо рдпрд╛ рдХреЛрдИ рд╢рд░реАрд░ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде, рдЕрдЧрд░ рдареАрдХ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдХрд╛рдо рдХреЛ рд╕рд░рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлреНрд░реАрдмреАрдПрд╕рдбреА рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреА рд╕рдордЧреНрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред